C#/C#
C# : MouseEventArgs, MouseEventHandler (마우스 포인터 위치)
CosmosProject
2022. 4. 8. 22:16
728x90
반응형
MouseEventArgs를 사용해봅시다.
아래 코드는 Form의 어느 위치를 클릭하면 그 위치의 X, Y 좌표를 나타내주는 코드입니다.
using System;
using System.Windows.Forms;
class MyProgram
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
Label lbl = new Label();
lbl.Parent = fm;
lbl.Width = 300;
lbl.Height = 20;
void fm_click(object sender, MouseEventArgs e)
{
String x = e.X.ToString();
String y = e.Y.ToString();
lbl.Text = "X = " + x + ", Y = " + y;
}
fm.MouseDown += new MouseEventHandler(fm_click);
Application.Run(fm);
}
}
위 코드를 실행하면 아래와 같은 Window가 뜹니다.
그리고 Window의 아무 부분을 클릭하면 아래와 같이 클릭한 곳의 X, Y 좌표가 나오죠.
MouseEvent를 다루는 부분을 봅시다.
void fm_click(object sender, MouseEventArgs e)
{
String x = e.X.ToString();
String y = e.Y.ToString();
lbl.Text = "X = " + x + ", Y = " + y;
}
fm.MouseDown += new MouseEventHandler(fm_click);
MouseEvent를 다루기 위해서는 Event method의 parameter로서 MouseEventArgs e를 전달해야합니다.
이 변수 e에는 이벤트가 발생했을 때 마우스 포인터 관련 정보가 들어있습니다.
그래서 e.X, e.Y 와 같이 이벤트가 발생한 시점의 마우스 X, Y 좌표를 얻을 수 있는 것이죠.
ToString은 X, Y 좌표를 String으로 만들기 위한 method입니다.
또한 Mouse Event는 Form의 MouseDown에 등록해야하며 MouseEventHandler 델리게이트에 Event Method(fm_click)를 담아서 전달합니다.
728x90
반응형