14

e.KeyWPFKeyDownイベントからプロパティによって渡される ASCII 文字が必要です。

4

4 に答える 4

4

残念ながら、これを行う簡単な方法はありません。回避策は 2 つありますが、どちらも特定の条件下で落ちます。

最初のものは、それを文字列に変換することです:

TestLabel.Content = e.Key.ToString();

これで CapsLock や Shift などがわかりますが、英数字キーの場合はその時点でシフトなどの状態がわからないので、それを把握する必要があります。あなた自身。

2 番目の方法は、代わりに TextInput イベントを使用することです。この場合、e.Text には入力された実際のテキストが含まれます。これにより、英数字キーの正しい文字が得られますが、制御文字は得られません。

于 2009-01-28T09:05:57.367 に答える
3

簡潔な質問から、押されたキーの ASCII 値を取得する方法が必要だと思います。これはうまくいくはずです

private void txtAttrName_KeyDown(object sender, KeyEventArgs e)
        {
            Console.WriteLine(e.Key.ToString());
            char parsedCharacter = ' ';
            if (Char.TryParse(e.Key.ToString(), out parsedCharacter))
            {
                Console.WriteLine((int) parsedCharacter);
            }
        }

たとえば、Ctrl + S を押すと、次の出力が表示されます。

LeftCtrl
S
83
于 2009-01-28T09:40:28.903 に答える
-4
System.Enum.ToObject(e.Key.GetType(), (byte)e.Key).ToString();
于 2011-03-24T21:52:56.200 に答える