Windows フォーム アプリケーションにおけるユーザー入力
Windows フォームでは、ユーザー入力は、Windows メッセージの形式でアプリケーションに送信されます。 一連のオーバーライド可能なメソッドにより、これらのメッセージは、アプリケーション、フォーム、コントロールのレベルで処理されます。 これらのメソッドにより、マウスやキーボードのメッセージが受信されると、マウスまたはキーボードの入力に関する情報を取得するために処理できるイベントが生成されます。 多くの場合、Windows フォーム アプリケーションは、これらのイベントに対処するだけで、すべてのユーザー入力を処理できます。 それ以外の場合は、アプリケーション、フォーム、またはコントロールで受信される前に特定のメッセージをインターセプトするために、アプリケーションで、メッセージを処理するメソッドの 1 つをオーバーライドすることが必要な場合があります。
マウスとキーボードのイベント
すべての Windows フォーム コントロールは、マウスおよびキーボード入力に関連する一連のイベントを継承します。 たとえば、コントロールで KeyPress イベントを処理して押されたキーの文字コードを判別したり、コントロールで MouseClick イベントを処理してマウス クリックの位置を特定したりすることができます。 マウスとキーボードのイベントの詳細については、「キーボード イベントの使用」および「Windows フォームにおけるマウス イベント」を参照してください。
ユーザー入力メッセージを処理するメソッド
フォームとコントロールは、IMessageFilter インターフェイス、およびメッセージ キュー内のさまざまなポイントで Windows メッセージを処理するオーバーライド可能なメソッドのセットにアクセスできます。 これらのメソッドにはすべて、Windows メッセージの下位レベルの詳細をカプセル化する Message パラメーターが含まれています。 これらのメソッドを実装またはオーバーライドしてメッセージを確認し、メッセージを使用するか、またはメッセージ キュー内の次のコンシューマーに渡すことができます。 次の表に、Windows フォームのすべての Windows メッセージを処理するメソッドを示します。
メソッド | メモ |
---|---|
PreFilterMessage | このメソッドにより、キューに登録済み (ポスト済みとも呼ばれる) の Windows メッセージはアプリケーション レベルでインターセプトされます。 |
PreProcessMessage | このメソッドにより、Windows メッセージが、処理される前に、フォームおよびコントロール レベルでインターセプトされます。 |
WndProc | このメソッドにより、Windows メッセージはフォームおよびコントロール レベルで処理されます。 |
DefWndProc | このメソッドにより、Windows メッセージの既定の処理はフォームおよびコントロール レベルで実行されます。 これにより、Windows の最小限の機能が提供されます。 |
OnNotifyMessage | このメソッドにより、メッセージは、処理された後、フォームおよびコントロール レベルでインターセプトされます。 このメソッドが呼び出されるようにするには、EnableNotifyMessage スタイルのビットを設定する必要があります。 |
キーボードおよびマウス メッセージは、これらの種類のメッセージ固有のオーバーライド可能なメソッドの追加セットによっても処理されます。 詳細については、「キーボード入力のしくみ」および「Windows フォームにおけるマウス入力のしくみ」を参照してください。
関連項目
.NET Desktop feedback