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.