2011-03-13 7 views
11

KeyEventArgsの文字/数字(A-Z0-9)であるかどうかを判断する方法はありますか?それとも、自分で作る必要がありますか? e.KeyCodeで方法を見つけましたが、それは正確ですか? WPFではKeyEventArgが文字か数値かを判断できますか?

bool isLetterOrDigit = char.IsLetterOrDigit((char) keyEventArgs.KeyCode); 
+0

どのように文字を定義しますか?他の言語のA-Zまたは手紙だけ?数字も同じです。また、キーは文字でもなく(キーと文字の間に1対1の対応がないため)、文字/数字にすることはできません。 – CodesInChaos

+2

これはKeyDownイベントからはわかりません。仮想キーがユーザーのキーボードレイアウトで翻訳された後でのみ、あなたは知っています。代わりにKeyPressedイベントを使用します。 –

答えて

24

あなたがイベント引数のKeyCodechar.IsLetterOrDigit()メソッドを使用することができますか? KeyDownの代わりにPreviewTextInputまたはTextInputイベントを使用する

9
+1

['Char'](http://msdn.microsoft.com/en-us/library/424s1h3z.aspx)にも同様の機能がたくさんあります。 –

+1

これはわかりませんでした。いい答え。 – Andr

6

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

明らかにWPFではありません。 –

関連する問題