Coma por Punto

12/03/2008 - 08:24 por Item | Informe spam
Hola

¿Alguien podría explicarme en que evento y como se puede sustituir el punto
por la coma en un TextBox y C#?

Es que no funciona nada coño, esto lo he probado en KeyDown, KeyPress y la
propiedad e:KeyData, etc son de solo lectura:

// if ( e.KeyData == Keys.OemPeriod ) //Keys.OemPeriod )(char)190
// {
// e.Handled = true;
// //e.KeyData = Keys.Oemcomma;
// e.KeyValue = (char)188;
// }

Gracias

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
12/03/2008 - 11:08 | Informe spam
Hola Item

Puedes utilizar el evento KeyPress de la siguiente forma: una vez que
detectas que han pulsado el punto, debes asignar a la propiedad
KeyPressEventArgs.Handled el valor true, para indicar al formulario que tu
código va a encargarse de manejar el evento; sustituyes el punto por una
coma, y posicionas el cursor de escritura al final de la caja de texto
mediante la clase SendKeys, de forma parecida a como tienes en el siguiente
bloque de código.

//-
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar.ToString() == ".")
{
e.Handled = true;
this.textBox1.Text += ",";
SendKeys.Send("{END}");
}
}
//-

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Item" wrote:

Hola

¿Alguien podría explicarme en que evento y como se puede sustituir el punto
por la coma en un TextBox y C#?

Es que no funciona nada coño, esto lo he probado en KeyDown, KeyPress y la
propiedad e:KeyData, etc son de solo lectura:

// if ( e.KeyData == Keys.OemPeriod ) //Keys.OemPeriod )(char)190
// {
// e.Handled = true;
// //e.KeyData = Keys.Oemcomma;
// e.KeyValue = (char)188;
// }

Gracias





Respuesta Responder a este mensaje
#2 Alberto Poblacion
12/03/2008 - 11:35 | Informe spam
"Luis Miguel Blanco" wrote in
message news:
[...]
this.textBox1.Text += ",";
SendKeys.Send("{END}");



No lo he probado, pero ¿no sería mejor hacer directamente un
SendKeys.Send(","), con lo que la coma iría a parar directamente a la
ubicación en la que estés tecleando? De esta forma no hay que posicionar el
cursor al final, y además funcionaría si el usuario hace click en el centro
del texto y se pone a insertar carateres en ese lugar.
Respuesta Responder a este mensaje
#3 Luis Miguel Blanco
12/03/2008 - 12:16 | Informe spam
Hola Alberto

En efecto, de esta manera también funcionaría incluso tecleando a la mitad
del texto existente en el TextBox. Tomé este bloque de código de otro ejemplo
en el que creo recordar que el comportamiento requerido pasaba por obligar a
teclear siempre al final 8-).

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Alberto Poblacion" wrote:

"Luis Miguel Blanco" wrote in
message news:
> [...]
> this.textBox1.Text += ",";
> SendKeys.Send("{END}");

No lo he probado, pero ¿no sería mejor hacer directamente un
SendKeys.Send(","), con lo que la coma iría a parar directamente a la
ubicación en la que estés tecleando? De esta forma no hay que posicionar el
cursor al final, y además funcionaría si el usuario hace click en el centro
del texto y se pone a insertar carateres en ese lugar.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida