次の方法で共有


方法 : "OnEnter/フォーカス取得時"の機能を作成します。

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

.NET Compact Framework コントロールに対して、OnEnterOnLeave メソッドをサポートしません。 ただし、ため OnMouseMove メソッドがサポートするを使用してそのと Capture プロパティ マウス ポインターを入力または、コントロールからフォーカスを外したときを判断します。

例は、単純なカスタム コントロール、MouseCapture マウスの動きでは、コントロールの内部し、ときライト グレー青ある定義が、コントロールの外側です。 マウス座標が ClientRectangle メソッドを使用して、 OnMouseMove 内かどうかを確認します。

メモ タップとコントロールの出力にはその色を変更しないこと。 ドラッグ アンド ドロップ操作のなど、マウスにドラッグする必要があります。

作成して、カスタム コントロールを実装するには

  1. プロジェクトに、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;
        }
    }
    
  2. フォームのコンストラクターでまたはその 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);
    

コードのコンパイル方法

この例では、次の名前空間への参照が必要です。

参照

概念

カスタム コントロールの開発

.NET コンパクトなフレームワーク方法を説明したトピックの検索