C#을 사용하여 마우스 위치 가져오기

Naila Saad Siddiqui 2023년10월12일
  1. 윈도우 폼 애플리케이션
  2. C#을 사용하여 화면에서 마우스 위치 가져오기
C#을 사용하여 마우스 위치 가져오기

이 간단한 프로그래밍 자습서는 C# Windows Form 응용 프로그램에서 마우스 위치를 가져오는 방법에 관한 것입니다.

윈도우 폼 애플리케이션

컴퓨터에서 실행하기 위해 특별히 만든 응용 프로그램은 Windows Form 응용 프로그램입니다. 데스크톱 기반 응용 프로그램이므로 웹 브라우저에서는 작동하지 않습니다.

Windows Form 응용 프로그램에는 수많은 컨트롤이 있을 수 있습니다. 버튼, 텍스트 상자, 레이블 등과 같은 다양한 컨트롤을 포함하는 상호 연결된 화면으로 구성될 수 있습니다.

C#을 사용하여 화면에서 마우스 위치 가져오기

때때로 상호 작용이 최우선 순위인 시나리오에서는 종종 마우스 커서의 현재 위치를 가져와야 합니다. 우리 화면은 x, y좌표로 측정되기 때문에 마우스 포인터 위치의 x좌표와 y좌표를 얻어서 마우스 위치를 알 수 있습니다.

C#에서는 Cursor 클래스를 사용하여 마우스 포인터 위치를 가져올 수 있습니다. 이것은 전체 화면과 비교하여 마우스 포인터의 현재 위치를 반환합니다.

현재 창에 특정한 위치를 가져와야 하는 경우 ScreenToClient() 함수를 호출할 수 있습니다. 이 함수는 x 및 y 좌표를 포함하는 Point 개체를 가져오고 현재 창 화면에 대한 Point 개체를 반환합니다.

먼저 Visual Studio에서 새 Windows Form 애플리케이션을 만듭니다.

해당 응용 프로그램에서 Form1.cs가 기본적으로 생성됩니다. 해당 파일에서 다음과 같이 두 개의 텍스트 상자를 만듭니다.

C# 마우스 위치 가져오기 - 1단계

해당 cs 파일, 즉 Form1.cs에서 다음과 같이 마우스 위치를 가져오는 코드를 작성할 수 있습니다.

Point p = PointToClient(Cursor.Position);
textBox1.Text = p.X.ToString();
textBox2.Text = p.Y.ToString();

이 함수는 함수가 호출될 때 포인터 위치에 따라 값을 설정합니다. 나중에 마우스 포인터를 움직여도 값이 변경되지 않습니다.

이를 위해 onMouseMove 이벤트 핸들러에 이 코드를 작성할 수 있습니다.

protected override void OnMouseMove(MouseEventArgs e) {
  Point p = PointToClient(Cursor.Position);
  textBox1.Text = p.X.ToString();
  textBox2.Text = p.Y.ToString();
}

그 효과는 앱을 실행한 후 포인터가 있을 때마다 값이 (따라서) 변경된다는 것입니다.

출력 화면의 두 인스턴스를 연결해 보겠습니다.

C# 마우스 위치 가져오기 - 출력 1

C# 마우스 위치 가져오기 - 출력 2

커서를 이동하면서 위치 값이 변하는 것을 두 출력 화면 모두에서 볼 수 있습니다. 이 위치 값은 현재 화면을 기준으로 합니다.

이렇게 하면 C# .NET 코드에서 현재 마우스 위치를 가져와 추가 프로그래밍 작업에 사용할 수 있습니다.

관련 문장 - Csharp Mouse