2

異なるマシンでは、OnKeyDown上書きでは、e.Key値は必ずしも一貫していません。たとえば、Boot Camp で Win7-64 を実行している私の Mac では、バックスラッシュ キーが期待どおりに報告されますがKey.OemQuoteKey.OemBackslashこれは同じキーでさえないことを考えると意味がありません。同僚の Dell では、まったく別のものとして報告されています。

ただし、どちらの場合も、入力時に正しいバックスラッシュ文字がテキストボックスに表示されるため、OS はそのキーがどの文字に関連付けられているかを明らかに認識しています。

特定のシステムのキーコードが与えられた場合、そのキーが表す対応する文字を取得できるかどうかを判断しようとしています (修飾キーが押されていないと仮定します)。

注:入力された文字を処理するOnPreviewTextInputandイベントについては既に認識していますが、それは私が求めているものではありません。OnTextInput

KeyCode をパラメーターとして取り、そのキーが押された場合に画面に表示される文字を返す関数について具体的に質問しています

たとえば、私のマシンでは、関数はKey.OemQuoteバックスラッシュ文字を受け取って返します。渡すKey.Controlと戻りnullます (Control だけを押しても実際には何も表示されないため)。

注:この質問に似ているように見えるさまざまなキーコードの処理について別の質問をしましたが、これはそのようなコードを取り、文字を返す関数に関連する非常に具体的な別の質問です。これを重複としてマークしないでください。そうではない。

4

1 に答える 1

0

このスレッドの答えが当てはまると思います。

MapVirtualKey PInvokeもチェックしてください

于 2012-10-24T22:55:04.713 に答える