En mi KeyDown
EventHandler
necesito saber cuál es el KeyCode
para "," y ".".¿Cuál es el código de clave para "," (coma) y "." (Punto) en .NET?
No puedo encontrarlos, es por eso que pregunto. ¡Gracias!
En mi KeyDown
EventHandler
necesito saber cuál es el KeyCode
para "," y ".".¿Cuál es el código de clave para "," (coma) y "." (Punto) en .NET?
No puedo encontrarlos, es por eso que pregunto. ¡Gracias!
Una clave y un caracter no son lo mismo. El diseño del teclado se transforma entre ellos, y esa transformación no es trivial. Probablemente esté haciendo algo incorrecto al usar KeyDown
. Si desea saber qué carácter ingresó un usuario, debe usar KeyPress
, que le da al personaje ya traducido.
Por ejemplo, Keys.Decimal
es una clave en el teclado numérico que corresponde a .
en el diseño de EE. UU., Y ,
en el diseño alemán. Keys.Oemcomma
y OemPeriod
son probablemente ,
y .
debajo de las letras. Pero en otros diseños que pueden ser diferentes.
Keys.Deciaml es para el teclado numérico ¿para el segundo decimal? –
No hay un "segundo decimal". Hay una clave para * coma * y otra para * período *, pero cuál de ellas produce el separador decimal depende de la configuración regional. También estoy bastante seguro de que hacer esta pregunta significa que ya estás en el camino equivocado. Deberías trabajar con personajes, no con teclas. – CodesInChaos
Oemcomma
y OemPeriod
parecen buenos candidatos.
Mire el Keys
enumeration en MSDN.
lo hice:
Uso Keys.Oemcomma
y Keys.OemPeriod
Has probado esto c
Un filtro de flotación "":
Select Case e.KeyChar
Case "0"c To "9"c
Case "."c
If .Text.Contains(".") Then
e.Handled = True
End If
Case ChrW(Keys.Delete), ChrW(Keys.Back)
Case Else
e.Handled = True
End Select
¿Hay una sintaxis de C# para esto? – Bosak
¿Seguro que desea utilizar el 'KeyDown' y no el' manejador KeyPress'? – CodesInChaos
El controlador de eventos KeyDown maneja los trazos de tecla, no su representación en el sistema, lo que depende de la configuración regional. Para manejar el personaje, use el evento KeyPress. – pistipanko