teclado numércio punto decimal

15/09/2005 - 06:08 por Juan Melas | Informe spam
Necesitaría que al ingresar el punto decimal en el teclado numérico lo
transforme a coma como la calculadora de windows cuando tengo configurado el
separador decimal como coma ya que a los usuarios les resulta más cómodo
cuando tienen que ingresar gran cantidad de datos numéricos.Hace poco
alguien paso un ejemplo pero no lo puedo encontrar.

Gracias

Preguntas similare

Leer las respuestas

#6 Juan Melas
16/09/2005 - 05:40 | Informe spam
Gracias, Leonardo aparentemente funciona, por lo menos eso creo hasta que lo
pruebe mi secretaria a la que te recomiendo si deseas testear tus
aplicaciones tiene una habilidad especial para al primer intento hacer lo
que no hayas previsto podía hacer luego de pasarte un mes testeando tu
aplicación tratando de preveer que tecla puede tocar el usuario o donde va a
pinchar con el mouse.

Saludos.

"Leonardo Azpurua [mvp vb]" <l e o n a r d o (arroba) m v p s (punto) o r g>
escribió en el mensaje news:

"Juan Melas" escribió en el mensaje
news:
Leonardo:ndl
Probé tu ejemplo, en este caso logro convertir el punto
por coma pero permite ingresar más de una coma, nose será posible hacer
lo que estoy intentando, ya que tengo una clase de textbox numérico que
valida diversas alternativas indendientemente de la configuración
regional que toma en la línea que transcribo abajo en este caso si pongo
e.handled=true no realiza la validación de algún modo deberé buscar la
alternativa para que detecte la configuración del separador decimal del
equipo para realizar la conversión del punto en coma y realizar la
validación.



Hola, Juan:

Si te fijas en la conducta de Excel, en el momento en que incluyes un
segundo separador, el valor se convierte en alfanumerico.

La practica más frecuente funciona mas o menos así:

Cuando el control recibe el foco, el formato "externo" (#,###,##0.00, por
ejemplo) se convierte en un formato "simplificado" (#######0,00) [Text =
Str(Double.Parse(Text))]

Durante la edición, los únicos caracteres validos son el signo (solo en la
primera posicion), el separador decimal (que puede ser el punto, es un
separador universal al cual todos los usuarios están acostumbrados: de
hecho me molesta que Excel utilice la coma) y por supuesto los dígitos.

Puedes verificar que el punto sea único escribiendo (siempre en KeyPress):

If e.KeyChar = "." Then
If DirectCast(sender, TextBox).Text.IndexOf(".") >= 0 Then
' ya hay un punto
e.Handled = True
...

Una vez que tienes una cadena de numeros, opcionalmente precedida de un
signo y conteniendo un solo punto (.), puedes, en el evento Validating, o
en Leave, convertir la cadena a un número(mediante Val, que asume siempre
el formato interno, independiente de la configuracion regional -no se si
hay un metodo equivalente en C#), hacer lo que necesites con él, y darle
el formato requerido con Double.ToString(formato).

Casi todos los usuarios estamos acostumbrados a aceptar el punto como
separador decimal durante la edición de números.

Salud!


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