MESCIUS PlusPak for Windows Forms 12.0J
マウス操作の制御

本項ではGcMouseコンポーネントを利用したマウス操作の制御について解説します。

クリック時の動作設定
ProcessFirstClickプロパティを利用すると、非アクティブなフォーム上のコントロールをクリックしたとき、クリックしたコントロールにフォーカスを持たせるかどうかを制御できます。

既定の動作とProcessFirstClick プロパティ

既定の動作では、非アクティブなフォーム上にあるコントロールのクリックにより、フォームがアクティブになると共にクリックされたコントロールがフォーカスを取得します。
ProcessFirstClickプロパティをFalseに設定することにより、この動作の抑制が可能です。
この場合、どのコントロールをクリックした場合でも、フォームが非アクティブになる前にフォーカスを持っていたコントロールが、そのままフォーカスを保持します。
この機能は、頻繁に画面の切り替えが発生し、なおかつ入力対象のコントロールを保持するようなケースで便利です。

サンプルコード

次のコードでは、非アクティブなフォーム上にあるコントロールへのクリックに対して、非アクティブとなる前のフォーカス状態を保持するように設定を行います。
GcMouse1.ProcessFirstClick = False            
gcMouse1.ProcessFirstClick = False;

マウスホイール動作の設定

MouseWheelTargetプロパティの利用により、フォーム上でマウスホイール操作を操作したとき、操作の対象となるコントロールの種類を設定できます。

プロパティ値 説明
FocusedControl フォーム上のアクティブな(フォーカスのある)コントロールに対してホイール操作が有効になります。
HoveredControl フォーカスの有無にかかわらず、マウスポインタの下にあるコントロールに対してホイール操作が有効になります。
SpecifiedControl フォーカスの有無にかかわらず、MouseWheelTargetControlプロパティで指定されたコントロールに対してホイール操作が有効になります。

次のコードは、MouseWheelTargetプロパティ にSpecifiedControlを設定し、フォーム上のどの位置でマウスホイールを操作しても、ListBoxコントロールがスクロールされる例です。

GcMouse1.MouseWheelTarget = GrapeCity.Win.Components.MouseWheelTarget.SpecifiedControl
GcMouse1.MouseWheelTargetControl = ListBox1
gcMouse1.MouseWheelTarget = GrapeCity.Win.Components.MouseWheelTarget.SpecifiedControl;
gcMouse1.MouseWheelTargetControl = listBox1;
また、MouseWheelTargetプロパティ にSpecifiedControlを設定する場合、MouseWheelTargetControlの変化に応じてMouseWheelTargetControlChangedイベントが発生します。

動的なコンポーネントの利用
デザイン画面からの設定ではなく、コードから動的にGcMouseコンポーネントを生成する場合には、TargetFormプロパティに対象とするフォームを設定する必要があります。
下記のサンプルコードは、GcMouseコンポーネントを動的に生成し、フォームを指定する例です。
'GcMouseコンポーネントを動的に生成します。
Dim GcMouse1 As GrapeCity.Win.Components.GcMouse = New GrapeCity.Win.Components.GcMouse()
'対象のフォームを指定します。
GcMouse1.TargetForm = Me
'フォーカスのあるコントロールをホイール操作対象に設定します。
GcMouse1.MouseWheelTarget = GrapeCity.Win.Components.MouseWheelTarget.FocusedControl
//GcMouseコンポーネントを動的に生成します。
GrapeCity.Win.Components.GcMouse gcMouse1 = new GrapeCity.Win.Components.GcMouse();
//対象のフォームを指定します。
gcMouse1.TargetForm = this;
//フォーカスのあるコントロールをホイール操作対象に設定します。
gcMouse1.MouseWheelTarget = GrapeCity.Win.Components.MouseWheelTarget.FocusedControl;

関連トピック

 

 


© MESCIUS inc. All rights reserved.