2011-03-13 16 views
11

¿Hay alguna forma de determinar si una clave es una letra/número (A-Z, 0-9) en el KeyEventArgs? ¿O tengo que hacerlo yo mismo? Encontré una manera con e.KeyCode, ¿es eso exacto?¿Puedo determinar si KeyEventArg es una letra o número?

if(((e.KeyCode >= Keys.A  && e.KeyCode <= Keys.Z) 
|| (e.KeyCode >= Keys.D0  && e.KeyCode <= Keys.D9) 
|| (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9)) 
+0

¿Cómo se define la letra? solo A-Z o letras en otros idiomas también? Y lo mismo para los números. Y una clave no es ni siquiera una char (no hay correspondencia de 1 a 1 entre las teclas y los caracteres), por lo que no puede ser una letra/número. – CodesInChaos

+2

No puede saber esto desde el evento KeyDown. Solo después de traducir la clave virtual con el diseño del teclado del usuario, ¿sabe? Use el evento KeyPressed en su lugar. –

Respuesta

9
+1

Muchos objetos similares en ['Char'] (http://msdn.microsoft.com/en-us/library/424s1h3z.aspx). –

+1

¡Ok, no sabía eso! buena respuesta. – Andr

6

En WPF? Utilice los eventos PreviewTextInput o TextInput en lugar de KeyDown

+0

Obviamente no WPF. –

Cuestiones relacionadas