次の方法で共有


マウス イベントの使用

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

マウス イベント

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

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

マウス情報

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

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

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

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

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

マウス クリック イベントを適切な順序で処理する場合は、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 イベントは発生しません。

こちらも参照ください