キーボード イベントの使用

更新 : 2007 年 11 月

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

キーボード イベント

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 キーまたは CapsLock キーと一緒に押した場合)

    • 97 (単独で押した場合)

    • 1 (Ctrl キーと一緒に押した場合)

KeyUp

このイベントは、ユーザーが物理キーを離すと発生します。

KeyUp のハンドラは、次の項目を受け取ります。

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

    • KeyCode プロパティ (物理キーボード ボタンを指定します)。

    • Modifiers プロパティ (Shift、Ctrl、または Alt キー)。

    • KeyData プロパティ (キー コードと修飾子を組み合わせます)。

参照

概念

キーボード入力のしくみ

その他の技術情報

Windows フォーム アプリケーションにおけるキーボード入力

Windows フォーム アプリケーションにおけるマウス入力