2011-03-13 6 views
11

Czy istnieje sposób określenia, czy klucz jest literą/numerem (A-Z, 0-9) w KeyEventArgs? Czy muszę zrobić to sam? Znalazłem sposób z e.KeyCode, czy to jest dokładne?Czy mogę określić, czy KeyEventArg jest literą czy cyfrą?

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

Jak definiujesz literę? tylko A-Z lub litery w innych językach? I to samo dla liczb. A klucz nie jest nawet char (nie ma 1-do-1 korespondencji między klawiszami i znakami), więc nie może to być litera/cyfra. – CodesInChaos

+2

Nie możesz tego wiedzieć ze zdarzenia KeyDown. Czy wiesz, że dopiero po przetłumaczeniu klucza wirtualnego za pomocą układu klawiatury użytkownika? Zamiast tego użyj zdarzenia KeyPressed. –

Odpowiedz

9
+1

Wiele podobnych produktów w ['Char'] (http://msdn.microsoft.com/en-us/library/424s1h3z.aspx). –

+1

Ok, nie znałem tego! niezła odpowiedź. – Andr

6

w WPF? Użyj zdarzeń PreviewTextInput lub TextInput zamiast KeyDown

+0

Oczywiście nie WPF. –