KeyDown イベントには、操作する KeyEventArgs があります。(特に) 次の 3 つのプロパティがあります。
e.KeyCode
e.KeyData
e.KeyValue
どれを何に使えばいいの?
編集:どういうわけか、有効な文字のチェックを含めるために質問を読み違えました。修正しましたか?それぞれの説明を追加しました。
文字だけが必要な場合は、 KeyPress イベントを使用し、KeyPressEventArgsを使用することをお勧めします。KeyCharプロパティ。その後、 Char.IsLetterOrDigit()を使用して、有効な文字かどうかを確認できます。
または、 KeyEventArgs.KeyCodeを char にキャストしてから、Char.IsLetterOrDigit を使用することもできます。
プロパティを使用して、ほとんどの操作の列挙KeyCode
をチェックすることをお勧めします。Keys
ただし、以下の基本的な違いのいくつかは、状況に応じてどちらが必要かをより適切に判断するのに役立つ場合があります.
違い:
KeyCode
-Keys
現在ダウン状態にあるキーを表す列挙値を表します。
KeyData
- と同じKeyCode
ですが、修飾子の形式で追加情報がある点が異なります - Shift/Ctrl/Alt など。
KeyValue
- の数値KeyCode
。
KeyDown の非常に基本的な使い方
private void tbSomeText_KeyDown (object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.B && e.Modifiers != Keys.Shift) {
MessageBox.Show("You Pressed b");
}
else if (e.KeyCode == Keys.A && e.Modifiers == Keys.Shift) {
MessageBox.Show("You Pressed Shift+A");
}
}
KeyPressedイベントを使用します。
MSDNを引用:
KeyPressEventArgs は、ユーザーがキーを押したときに構成される文字を指定します。たとえば、ユーザーが SHIFT + K を押すと、KeyChar プロパティは大文字の K を返します。
e.KeyCode
このようにして、 、 、
e.KeyData
および
をいじる必要はありませんe.KeyValue
。