Share via


Windows フォームにおけるマウス イベント

更新 : 2007 年 11 月

マウス入力を処理する場合、通常、マウス ポインタの位置とマウス ボタンの状態を確認する必要があります。ここでは、この情報をマウス イベントから取得する方法について詳しく説明し、Windows フォーム コントロール内でマウス イベントが発生する順序について説明します。すべてのマウス イベントの一覧と説明については、「Windows フォームにおけるマウス入力のしくみ」を参照してください。詳細についてはイベントの概要 (Windows フォーム) およびイベント ハンドラの概要 (Windows フォーム) およびイベント ハンドラの概要 (Windows フォーム) およびイベントの概要 (Windows フォーム) およびイベント ハンドラの概要 (Windows フォーム) およびイベントの概要 (Windows フォーム) およびイベント ハンドラーの概要 (Windows フォーム) およびイベントの概要 (Windows フォーム).

マウス情報

MouseEventArgs は、マウス ボタンのクリックおよびマウスの動きの追跡に関連するマウス イベントのハンドラに送信されます。MouseEventArgs は、クライアント座標におけるマウス ポインタの位置、どのマウス ボタンが押されているか、およびマウス ホイールがスクロールされたかどうかなどの情報を含む、マウスの現在の状態に関する情報を提供します。マウス ポインタがコントロールの境界にいつ出入りしたかだけを通知するマウス イベントなど、いくつかのマウス イベントは EventArgs だけを送信し、それ以外の情報は送信しません。

マウス ボタンの現在の状態やマウス ポインタの位置を知る必要があり、マウス イベントの処理を回避する必要がある場合は、Control クラスの MouseButtons プロパティおよび MousePosition プロパティを使用できます。MouseButtons は、どのマウス ボタンが現在押されているかに関する情報を返します。MousePosition はマウス ポインタの画面座標を返します。これは、Position が返す値と等価です。

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

マウスの位置情報はクライアント座標で表されたり画面座標で表されたりするため、ある座標系から別の座標系への位置の変換が必要になることがあります。この作業は、Control クラスで使用できる PointToClient メソッドおよび PointToScreen メソッドを使用することによって簡単に行うことができます。

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

マウス クリック イベントを正しい順序で処理するには、Windows フォーム コントロールにおけるクリック イベントの発生順序を知る必要があります。すべての Windows フォーム コントロールは、マウス ボタンが押されて離されたときに (マウス ボタンの種類にかかわらず) 同じ順序でクリック イベントを発生させます。ただし、後述する各種コントロールは除きます。マウス ボタンを 1 回クリックしたときに発生するイベントの順序を次に示します。

  1. MouseDown イベント。

  2. Click イベント。

  3. MouseClick イベント。

  4. MouseUp イベント。

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

  1. MouseDown イベント。

  2. Click イベント。

  3. MouseClick イベント。

  4. MouseUp イベント。

  5. MouseDown イベント。

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

  7. MouseDoubleClick イベント。

  8. MouseUp イベント。

マウス クリック イベントの順序を示すコード例については、「方法 : Windows フォーム コントロールでユーザー入力イベントを処理する」を参照してください。

各種コントロール

標準のマウス クリック イベント動作に準拠しないコントロールを次に示します。

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

トグル コントロール (ButtonBase クラスから派生したコントロールなど) をマウス クリック イベントと組み合わせて使用すると、次のような特殊な描画動作を行います。

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

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

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

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

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

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

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

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

    ms171542.alert_note(ja-jp,VS.90).gifメモ :

    ユーザーがマウス ボタンを押しながらトグル コントロールの外にポインタを移動した場合 (たとえば、ボタンを押したまま Button コントロールの外にマウスを移動した場合)、トグル コントロールは浮き出た状態で描画され、MouseUp イベントだけが発生します。この場合には、Click イベントや MouseClick イベントは発生しません。

参照

その他の技術情報

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