方法 : "OnEnter/フォーカス取得時"の機能を作成します。
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
.NET Compact Framework コントロールに対して、OnEnter と OnLeave メソッドをサポートしません。 ただし、ため OnMouseMove メソッドがサポートするを使用してそのと Capture プロパティ マウス ポインターを入力または、コントロールからフォーカスを外したときを判断します。
例は、単純なカスタム コントロール、MouseCapture マウスの動きでは、コントロールの内部し、ときライト グレー青ある定義が、コントロールの外側です。 マウス座標が ClientRectangle メソッドを使用して、 OnMouseMove 内かどうかを確認します。
メモ タップとコントロールの出力にはその色を変更しないこと。 ドラッグ アンド ドロップ操作のなど、マウスにドラッグする必要があります。
作成して、カスタム コントロールを実装するには
プロジェクトに、MouseCapture カスタム コントロールを追加します。
Public Class MouseCapture Inherits Control PublicSubNew() Me.BackColor = Color.LightGray EndSub 'New ' If the mouse is over the control, Capture is true. ProtectedOverridesSub OnMouseMove(e As MouseEventArgs) Me.Capture = Me.ClientRectangle.Contains(e.X, e.Y) IfMe.Capture Then ' Blue indicates inside the control.Me.BackColor = Color.Blue ElseMe.BackColor = Color.LightGray EndIfEndSubEndClass
public class MouseCapture : Control { public MouseCapture() { this.BackColor = Color.LightGray; } // If the mouse is over the custom control, Capture is true.protectedoverridevoid OnMouseMove(MouseEventArgs e) { this.Capture = this.ClientRectangle.Contains(e.X, e.Y); if (this.Capture == true) this.BackColor = Color.Blue; elsethis.BackColor = Color.LightGray; } }
フォームのコンストラクターでまたはその MouseCapture イベントは、 Load のインスタンスを作成します。
' Assumes mc has been delared ' for the form as type MouseCapture. Dim mc AsNew MouseCapture() mc.Parent = Me mc.Bounds = New Rectangle(20, 50, 100, 50)
// Assumes mc has been delared // for the form as type MouseCapture. mc = new MouseCapture(); mc.Parent = this; mc.Bounds = new Rectangle(20, 50, 100, 50);
コードのコンパイル方法
この例では、次の名前空間への参照が必要です。