次の方法で共有


マウス イベントの使用 (Windows フォーム .NET)

ほとんどの Windows フォーム プログラムは、マウス イベントを処理してマウス入力を処理します。 この記事では、マウス イベントの概要について説明します。各イベントを使用するタイミングの詳細や、各イベントに対して提供されるデータについて説明します。 一般的なイベントの詳細については、「イベントの概要 (Windows フォーム .NET)を参照してください。

マウス イベント

マウス入力に応答する主な方法は、マウス イベントを処理することです。 次の表は、マウス イベントとその発生時期を示しています。

マウス イベント 説明
Click このイベントは、マウス ボタンが離されると、通常は MouseUp イベントの前に発生します。 このイベントのハンドラーは、EventArgs型の引数を受け取ります。 クリックがいつ発生するかを判断するだけで済む場合に、このイベントを処理します。
MouseClick このイベントは、ユーザーがマウスでコントロールをクリックしたときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。 クリックが発生したときにマウスに関する情報を取得する必要がある場合は、このイベントを処理します。
DoubleClick このイベントは、コントロールがダブルクリックされたときに発生します。 このイベントのハンドラーは、EventArgs型の引数を受け取ります。 このイベントは、ダブルクリックがいつ発生するかを判断するだけで済む場合に処理します。
MouseDoubleClick このイベントは、ユーザーがマウスでコントロールをダブルクリックしたときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。 ダブルクリックが発生したときにマウスに関する情報を取得する必要がある場合は、このイベントを処理します。
MouseDown このイベントは、マウス ポインターがコントロールの上にあり、ユーザーがマウス ボタンを押したときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。
MouseEnter このイベントは、コントロールの種類に応じて、マウス ポインターがコントロールの境界線またはクライアント領域に入ったときに発生します。 このイベントのハンドラーは、EventArgs型の引数を受け取ります。
MouseHover このイベントは、マウス ポインターが停止してコントロールの上にあるときに発生します。 このイベントのハンドラーは、EventArgs型の引数を受け取ります。
MouseLeave このイベントは、コントロールの種類に応じて、マウス ポインターがコントロールの境界線またはクライアント領域を離れると発生します。 このイベントのハンドラーは、EventArgs型の引数を受け取ります。
MouseMove このイベントは、マウス ポインターがコントロールの上にある間に移動したときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。
MouseUp このイベントは、マウス ポインターがコントロールの上にあり、ユーザーがマウス ボタンを離したときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。
MouseWheel このイベントは、コントロールにフォーカスがあるときにユーザーがマウス ホイールを回転したときに発生します。 このイベントのハンドラーは、MouseEventArgs型の引数を受け取ります。 MouseEventArgsDelta プロパティを使用して、マウスのスクロール距離を決定できます。

マウス情報

MouseEventArgs は、マウス ボタンのクリックとマウスの動きの追跡に関連するマウス イベントのハンドラーに送信されます。 MouseEventArgs は、クライアント座標でのマウス ポインターの位置、マウス ボタンが押された位置、マウス ホイールがスクロールしたかどうかなど、マウスの現在の状態に関する情報を提供します。 マウス ポインターがコントロールの境界に入ったとき、またはコントロールの境界を離れたときに発生するイベントなど、いくつかのマウス イベントは、詳細情報なしでイベント ハンドラーに EventArgs を送信します。

マウス ボタンの現在の状態またはマウス ポインターの位置を把握し、マウス イベントの処理を回避したい場合は、Control クラスの MouseButtons プロパティと MousePosition プロパティを使用することもできます。 MouseButtons は、現在押されているマウス ボタンに関する情報を返します。 MousePosition はマウス ポインターの画面座標を返し、Positionによって返される値と同じです。

画面座標とクライアント座標間の変換

一部のマウスの位置情報はクライアント座標にあり、一部は画面座標内にあるため、ある座標系から他方の座標系にポイントを変換する必要がある場合があります。 これを簡単に行うには、Control クラスで使用できる PointToClient メソッドと PointToScreen メソッドを使用します。

標準クリックイベントの挙動

マウス クリック イベントを適切な順序で処理する場合は、Windows フォーム コントロールでクリック イベントが発生する順序を把握する必要があります。 サポートされているマウス ボタンが押されて離されると、すべての Windows フォーム コントロールでクリック イベントが同じ順序で発生します。ただし、個々のコントロールについては、次の一覧に記載されている場合を除きます。 次の一覧は、マウス ボタンを 1 回クリックしたときに発生するイベントの順序を示しています。

  1. MouseDown イベント。
  2. イベント Click
  3. MouseClick イベント
  4. MouseUp イベント

マウス ボタンを 2 回クリックしたときに発生するイベントの順序を次に示します。

  1. MouseDownイベント

  2. Click イベントがあります。

  3. MouseClick イベント。

  4. MouseUpイベント。

  5. MouseDownイベント。

  6. DoubleClick イベント。

    これは、問題のコントロールに StandardDoubleClick スタイル ビットが trueに設定されているかどうかによって異なる場合があります。 ControlStyles ビットを設定する方法の詳細については、SetStyle メソッドを参照してください。

  7. イベント MouseDoubleClick します。

  8. MouseUp イベント

個々のコントロール

次のコントロールは、標準のマウス クリック イベント動作に準拠していません。

トグル コントロールの描画動作

トグル コントロール (ButtonBase クラスから派生したコントロールなど) には、マウス クリック イベントと組み合わせて次のような独特の描画動作があります。

  1. ユーザーがマウス ボタンを押します。

  2. コントロールは押下状態で描画されます。

  3. MouseDownイベントが発生します。

  4. ユーザーがマウス ボタンを離します。

  5. コントロールは浮き上がった状態で描画されます。

  6. Click イベントが発生します。

  7. MouseClick イベントが発生します。

  8. MouseUp イベントが発生します。

    手記

    ユーザーがマウス ボタンを押している間にトグル コントロールの外にポインターを移動すると (押されている間にマウスを Button コントロールから離すなど)、トグル コントロールは上げられた状態で描画され、MouseUp イベントのみが発生します。 この状況では、Click または MouseClick イベントは発生しません。

関連項目