SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: syva en Sábado 24 de Septiembre de 2005, 14:15

Título: Problematica Coma Y Punto
Publicado por: syva en Sábado 24 de Septiembre de 2005, 14:15
Tengo unos textboxes que hacen cálculos, como es en español se utiliza la coma como separador de decimales, pero si alguien pone punto por ejemplo 0.5 es como si hubiese puesto 5.
¿Qué hago para mostrar una pantalla de error?¿O que se transforme en coma?
Título: Re: Problematica Coma Y Punto
Publicado por: Amilius en Sábado 24 de Septiembre de 2005, 14:46
Eso corresponde al usuario en Configuración Regional. Lo mejor es detertar la configuración al inicio y avisar si algo no va como se desea.
Título: Re: Problematica Coma Y Punto
Publicado por: Güorker en Lunes 26 de Septiembre de 2005, 08:48
Hola,

¿Has probado con la propiedad format que tienen los TextBox? Creo que con esa propiedad puedes establecer el formato de los números y el separador de decimales.

Saludos
Título: Re: Problematica Coma Y Punto
Publicado por: syva en Lunes 26 de Septiembre de 2005, 21:33
Estoy probando con esto:

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
      {
         if ( e.KeyChar == ( char ) 46)
         {
             textBox1.Text = string.Format(textBox1.Text, textBox1.TextLength -1) + ",";
         }
      }

pero no acaba de salir, coloca la coma pero también acaba colocando el punto al inicio de la casilla.
Título: Re: Problematica Coma Y Punto
Publicado por: Güorker en Martes 27 de Septiembre de 2005, 08:25
Hola de nuevo,

¿Que tal si intentas cambiar el valor ASCII de la tecla pulsada? Es decir, si el usuario ha pulsado '.' tu lo cambias por ','.

Código: Text
  1.  
  2.  if ( e.KeyChar == ( char ) 46)
  3. {
  4.    e.KeyChar = (char)44;
  5. }
  6.  
  7.  

No se si funcionará, pero por intentarlo...
Título: Re: Problematica Coma Y Punto
Publicado por: syva en Martes 27 de Septiembre de 2005, 14:15
e.KeyChar = (char)44;

Da error no se puede poner así a  secas.