c# - permitir - textbox que solo acepte un punto decimal
¿Cuál es el KeyCode para ","(coma) y "."(Punto) en.NET? (6)
¿Has probado esto "." C
Un filtro de flotador:
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
En mi KeyDown
EventHandler
necesito saber cuál es el KeyCode
para "," y ".".
No puedo encontrarlos por eso pregunto. ¡Gracias!
Echa un vistazo al valor decimal, ese es tu código clave.
Hice esto:
- Creó un proyecto WinForm con un solo cuadro de texto.
- Añadido el controlador de eventos keydown.
- Ponle un punto de quiebre
- Conseguí esto:
Una clave y un personaje no son lo mismo. La distribución del teclado se transforma entre ellos, y esa transformación no es trivial. Probablemente estás haciendo lo incorrecto cuando usas KeyDown
. Si desea saber qué carácter ingresó un usuario, debe usar KeyPress
, que proporciona el carácter ya traducido.
Por ejemplo, Keys.Decimal
es una tecla 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 probables ,
y .
Belows las letras. Pero en otros diseños que pueden ser diferentes.
Utilice Keys.Oemcomma
y Keys.OemPeriod
Oemcomma
y OemPeriod
parecen buenos candidatos.
Mira la enumeración de Keys
en MSDN.