キーボード イベントの使用 (Windows フォーム .NET)

多くの Windows フォーム プログラムは、キーボード イベントを処理することによってキーボード入力を処理します。 この記事では、どのような場合に各キーボード イベントを使用するか、また各イベントがどのようなデータを提供するかについての詳細を含め、キーボード イベントの概要について説明します。 一般的なイベントの詳細については、「イベントの概要 (Windows フォーム .NET)」を参照してください。

重要

.NET 7 と .NET 6 用のデスクトップ ガイド ドキュメントは作成中です。

キーボード イベント

Windows フォームは、ユーザーがキーボードのキーを押したときに発生する 2 つのイベントと、キーボードのキーを離したときに発生する 1 つのイベントを提供します。これらのイベントは次のとおりです。

  • KeyDown イベント。キーを押したときに 1 回発生します。
  • KeyPress イベント。ユーザーが同じキーを押したままにすると、繰り返し発生する可能性があります。
  • KeyUp イベント。ユーザーがキーを離したときに 1 回発生します。

ユーザーがキーを押すと、Windows フォームは、キーボード メッセージが文字キーまたは物理キーのどちらを示しているかに基づいて、発生させるイベントを決定します。 文字と物理のキーの詳細については、キーボードの概要の「キーボード イベント」を参照してください。

上の 3 つのキーボード イベントに関する説明を次の表に示します。

キーボード イベント 説明 結果
KeyDown このイベントは、ユーザーが物理キーを押すと発生します。 KeyDown のハンドラーは、次の項目を受け取ります。

  • KeyEventArgs パラメーター。このパラメーターは、物理キーボード ボタンを示す KeyCode プロパティを提供します。
  • Modifiers プロパティ (Shift、Ctrl、または Alt キー)。
  • KeyData プロパティ (キー コードと修飾子を組み合わせます)。 また、KeyEventArgs パラメーターは、次のプロパティを提供します。

    • Handled プロパティ。基となるコントロールがキーを受け取らないように設定できます。
    • SuppressKeyPress プロパティ。これを使用すると、特定のキーストロークで KeyPress イベントと KeyUp イベントが発生しないようにすることができます。
KeyPress このイベントは、1 つまたは複数のキーを押すことにより文字が出力された場合に発生します。 たとえば、Shift キーを押しながら小文字の "a" キーを押すと、大文字の "A" が出力されます。 KeyPress は、KeyDown の後に発生します。

  • KeyPress のハンドラーは、次の項目を受け取ります。
  • KeyPressEventArgs パラメーター。このパラメーターには、押したキーの文字コードが入ります。 この文字コードは、文字キーと修飾子キーの組み合わせごとに一意です。

    たとえば、"A" キーは次の文字コードを生成します。

    • 文字コード 65 (Shift キーまたは Caps Lock キーと一緒に押した場合)
    • 97 (単独で押した場合)
    • 1 (Ctrl キーと一緒に押した場合)
KeyUp このイベントは、ユーザーが物理キーを離すと発生します。 KeyUp のハンドラーは、次の項目を受け取ります。

  • KeyEventArgs パラメーターの値。次のプロパティを提供します。

    • KeyCode プロパティ (物理キーボード ボタンを示します)。
    • Modifiers プロパティ (Shift、Ctrl、または Alt キー)。
    • KeyData プロパティ (キー コードと修飾子を組み合わせます)。

関連項目