3

以下の例に示すように、イベントを使用してPreviewKeyDown、キーのリストにキーを追加しています。

    List<Key> keys = new List<Key>();
    private void MDIChildBackground_PreviewKeyDown(object sender, KeyEventArgs e)
    {        

        keys.Add(e.Key);
    }

次に、リストからキーを取得して整数に変換したいと考えました。

例:

    int number=int.parse(keys[0].ToString());

ps: 入力された数字のみになります

しかし、問題は文字列への変換にあります。キーボードで 1 を入力して文字列に変換すると、文字列値は「1」ではなく「D1」になるためです。すぐに、この文字列を整数に変換しようとすると、例外が発生します。

さて、どうすればこれを処理できますか?

4

2 に答える 2

3

KeyInterop.VirtualKeyFromKeyメソッドを使用して、WPF キーを Win32 仮想キーに変換できます。押されたキーの整数値を返します。

たとえば、Tキーを押すと 84 が返されます。

于 2012-09-06T21:34:37.277 に答える
0

数字キーのみを扱っていることが確実な場合は、次のように動作するはずです (私は Windows.Input に精通していません。それは WPF のものですか?)。

int Number = -1;

if( keys[0] >= Key.D0 && keys[0] <= Key.D9 )
   Number = keys[0] - Key.D0;

リスト内の他のキーについて繰り返します。

于 2012-09-06T21:53:53.377 に答える