달나라 노트

C# : MouseEventArgs, MouseEventHandler (마우스 포인터 위치) 본문

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
반응형
Comments