===================================
MouseOperation
===================================
マウス関連のオペレーションクラス一覧
================================================
各種オペレーションクラスが次のような継承関係で定義されています。
.. code-block:: csharp
public class MouseOperation : Operation { ... }
public class MouseClick : MouseOperation { ... }
public class MouseDown : MouseOperation { ... }
public class MouseUp : MouseOperation { ... }
public class LButtonClick : MouseClick { ... }
public class RButtonClick : MouseClick { ... }
public class MButtonClick : MouseClick { ... }
public class LButtonDown : MouseDown { ... }
public class RButtonDown : MouseDown { ... }
public class MButtonDown : MouseDown { ... }
public class LButtonUp : MouseUp { ... }
public class RButtonUp : MouseUp { ... }
public class MButtonUp : MouseUp { ... }
例えば ``LButtonClick`` クラスは、マウス左ボタンによるクリックを検出すると完了して自然に終了するオペレーションです。
クリック待ち状態において ``MouseMove`` イベントを取得することも出来ます。
MouseOperation クラス
=================================================
上記の継承ツリーのルートに位置する ``MouseOperation`` クラスについて説明します。
このクラスは、コンストラクタで設定された条件に合致するマウスイベントを検出すると完了するオペレーションです。
マウスイベントの条件は、マウスイベントの種類とボタンの種類の2つで指定します。
まず、ボタンの種類については ``System.Windows.Forms.MouseButtons`` 列挙子で指定します。
次にマウスイベントの種類は、次のように定義された列挙子によって指定します。
.. code-block:: csharp
///
/// マウス操作の種別を表す列挙型です。ビット演算子(|)で合成することが可能です。
///
public enum MouseOperations
{
/// 操作なしを表します。
None = 0,
/// マウスのクリック操作を表します。
MouseClick = 1,
/// マウスの移動操作を表します。
MouseMove = 2,
/// マウスのボタン押し下げ操作を表します。
MouseDown = 4,
/// マウスのボタンを離す操作を表します。
MouseUp = 8,
/// マウスのホイールを回す操作を表します。
MouseWheel = 16,
/// マウスのすべての操作を表します。
All = MouseClick | MouseMove | MouseDown | MouseUp | MouseWheel
}
MouseOperation の派生クラス群について
==============================================================
冒頭で、``MouseOperation`` から派生して多数のクラスが用意されていることを示しました。
しかしこれらはみな、コンストラクタで上記の「マウスイベントの条件」を指定して特殊化しているに過ぎません。
例えば ``LButtonClick`` は、次のように構築された ``MouseOperation`` と同義です。
.. code-block:: csharp
new MoNo.Ctrl.MouseOperation(con,
MoNo.Ctrl.MouseOperations.MouseClick,
System.Windows.Forms.MouseButtons.Left);