상세 컨텐츠

본문 제목

[C#] 이벤트

<개인공부>/[C#]

by 데브수달 2024. 10. 27. 15:41

본문

728x90
반응형

 

이벤트의 개념 : '사건' 

이벤트 처리기 
~~~

<이벤트 선언 형식>

접근 지정자 event 델리게이트 이름;

<이벤트 등록 형식>

delEvt += new CalcDelegate(등록할 이벤트 처리기(메소드));

C#에서의 이벤트 발생 시 작성 과정
1. 이벤트 발생 시 처리할 이벤트 처리기(메소드) 작성

2. 이벤트 처리기와 형식 같은 델리게이트 선언 (받는 인자와 반환 데이터형)

3. 이벤트 선언

4.이벤트에 델리게이트 이용하여 이벤트 처리기 등록 (주문내역 = 호출벨 등록)

5. 이벤트를 발생시켜 처리 여부 확인 (점원이 호출벨 울려서 커피 나왔음을 알려줌 : 처리완료)

 

<이벤트 생성 및 발생 예제>

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleEvent
{
    internal class Program
    {
        public delegate void ButtonEvent();
        public static event ButtonEvent evtClick;
        public static void onClick()
        {
            evtClick();
        }

        public static void MyHandler()
        {
            Console.WriteLine("버튼 클릭 처리기 수행");
        }
          
        static void Main(string[] args)
        {
            evtClick += new ButtonEvent(MyHandler);
            onClick();
        }
    }
}

<EventHandler 델리게이트를 사용한 이벤트 처리>

프로젝트명 : FormEvent

 

요기서 중요한 포이트는 콘솔 기반의 프로젝트에서 윈도우 form을 호출하기 위해서는 

윈도우 폼 관련 라이브러리를 추가해야한다고 한다.

아래에서는 먼저 참조 추가하는 과정을 나타내고 있다.

[프로젝트]- >[참조 추가]
[참조관리자] 창에서 목록 중 [System.Windows.Forms.dll]을 선택한 후 [확인]버튼 누르면
코드에 참조가 추가됨으로써 윈도우 폼을 호출하여 사용 할 수 있다.

 

 


 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormEvent
{
    public class FormEvent : Form
    {
        public FormEvent()
        {
            this.Click += new EventHandler(ClickEvent);
        }
        private void ClickEvent(object senderm, EventArgs e)
        {
            MessageBox.Show("마우스 클릭 이벤트를 처리합니다.");
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            Application.Run(new FormEvent());
        }
    }
}
728x90
반응형

관련글 더보기