다음을 통해 공유


방법: OnEnter 기능 만들기

업데이트: 2007년 11월

.NET Compact Framework에서는 컨트롤에 대해 OnEnterOnLeave 메서드를 지원하지 않습니다. 하지만 OnMouseMove 메서드가 지원되므로 이 메서드와 Capture 속성을 사용하여 마우스 포인터가 언제 컨트롤에 들어가거나 컨트롤에서 벗어나는지 확인할 수 있습니다.

이 예제에서는 마우스의 움직임이 컨트롤 안에서 발생하면 파랑이고 컨트롤 밖에서 발생하면 밝은 회색인 MouseCapture라는 간단한 사용자 지정 컨트롤을 정의합니다. 이 컨트롤은 OnMouseMove 메서드를 사용하여 마우스 좌표가 해당 ClientRectangle 내부에 있는지 확인합니다.

컨트롤의 안과 밖을 누르면 색은 변경되지 않습니다. 끌어서 놓기 작업의 경우처럼 마우스를 끌어야 합니다.

사용자 지정 컨트롤을 만들고 구현하려면

  1. 프로젝트에 MouseCapture라는 사용자 지정 컨트롤을 추가합니다.

    Public Class MouseCapture
       Inherits Control
    
       Public Sub New()
          Me.BackColor = Color.LightGray
       End Sub 'New
    
    
       ' If the mouse is over the control, Capture is true. 
       Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
          Me.Capture = Me.ClientRectangle.Contains(e.X, e.Y)
          If Me.Capture Then
             ' Blue indicates inside the control.
             Me.BackColor = Color.Blue
          Else
             Me.BackColor = Color.LightGray
          End If
       End Sub 
    End Class
    
    public class MouseCapture : Control
    {
        public MouseCapture()
        {
            this.BackColor = Color.LightGray;
        }
    
        // If the mouse is over the custom control, Capture is true.
        protected override void OnMouseMove(MouseEventArgs e)
        {
            this.Capture = this.ClientRectangle.Contains(e.X, e.Y);
            if (this.Capture == true)
                this.BackColor = Color.Blue;
            else
                this.BackColor = Color.LightGray;
        }
    }
    
  2. 폼의 생성자에서 또는 폼의 Load 이벤트에 대하여 MouseCapture의 인스턴스를 만듭니다.

    ' Assumes mc has been delared
    ' for the form as type MouseCapture.
      Dim mc As New 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 Compact Framework 방법 항목