마우스 포인터 관리(Windows Forms .NET)
커서라고도 하는 마우스 ‘포인터’는 마우스를 사용한 사용자 입력 화면에서 포커스 지점을 지정하는 비트맵입니다. 이 항목에서는 Windows Forms의 마우스 포인터를 간략하게 설명하고, 마우스 포인터를 수정 및 제어하는 몇 가지 방법을 설명합니다.
마우스 포인터에 액세스
마우스 포인터는 Cursor 클래스로 표시되며, 각 Control에 해당 컨트롤의 포인터를 지정하는 Control.Cursor 속성이 있습니다. Cursor 클래스에는 포인터를 설명하는 속성(예: Position 및 HotSpot 속성)과 포인터 모양을 수정할 수 있는 메서드(예: Show, Hide, DrawStretched 메서드)가 포함되어 있습니다.
다음 예제에서는 커서가 단추 위에 있을 때 커서를 숨깁니다.
private void button1_MouseEnter(object sender, EventArgs e) =>
Cursor.Hide();
private void button1_MouseLeave(object sender, EventArgs e) =>
Cursor.Show();
Private Sub Button1_MouseEnter(sender As Object, e As EventArgs) Handles Button1.MouseEnter
Cursor.Hide()
End Sub
Private Sub Button1_MouseLeave(sender As Object, e As EventArgs) Handles Button1.MouseLeave
Cursor.Show()
End Sub
마우스 포인터 제어
마우스 포인터를 사용할 수 있는 영역을 제한하거나 마우스 위치를 변경하려는 경우도 있습니다. Cursor의 Position 속성을 사용하여 마우스의 현재 위치를 가져오거나 설정할 수 있습니다. 또한 Clip 속성을 설정하여 마우스 포인터를 사용할 수 있는 영역을 제한할 수 있습니다. 기본적으로 클립 영역은 전체 화면입니다.
다음 예제에서는 두 단추를 클릭할 때 단추 사이에 마우스 포인터를 놓습니다.
private void button1_Click(object sender, EventArgs e) =>
Cursor.Position = PointToScreen(button2.Location);
private void button2_Click(object sender, EventArgs e) =>
Cursor.Position = PointToScreen(button1.Location);
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
PointToScreen(Button2.Location)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
PointToScreen(Button1.Location)
End Sub
마우스 포인터 변경
마우스 포인터 변경은 사용자에게 피드백을 제공하는 중요한 방법입니다. 예를 들어 MouseEnter 및 MouseLeave 이벤트 처리기에서 마우스 포인터를 수정하여 사용자에게 계산이 수행됨을 알리고 컨트롤의 사용자 조작을 제한할 수 있습니다. 애플리케이션이 끌어서 놓기 작업과 관련된 경우와 같이 시스템 이벤트로 인해 마우스 포인터가 변경되는 경우도 있습니다.
마우스 포인터를 변경하는 기본 방법은 컨트롤의 Control.Cursor 또는 DefaultCursor 속성을 새 Cursor로 설정하는 것입니다. 마우스 포인터 변경 예제는 Cursor 클래스의 코드 예제를 참조하세요. 또한 Cursors 클래스는 손 모양 포인터와 같은 다양한 형식의 포인터를 위해 Cursor 개체 세트를 공개합니다.
다음 예제에서는 단추의 마우스 포인터 커서를 손 모양으로 변경합니다.
button2.Cursor = System.Windows.Forms.Cursors.Hand;
Button2.Cursor = System.Windows.Forms.Cursors.Hand
마우스 포인터가 컨트롤 위에 있을 때마다 모래 시계와 유사한 대기 포인터를 표시하려면 Control 클래스의 UseWaitCursor 속성을 사용합니다.
참고 항목
.NET Desktop feedback