[C#] 각종 컴포넌트에 이벤트 핸들러 등록하기
.Net Compact Framework 2009. 4. 14. 00:13Java만 해 봤던 나로써는 C#에서의 이벤트 처리 방법은 조금 특이해 보인다.
마치 함수포인터를 넘기는 방법이랄까?
C#에서는 다음과 같은 방법으로 이벤트 핸들러를 등록할 수 있다.
예를들어 Form(Frame, Window)라는게 있는데, 이 놈이 Load 될때에 이벤트가 발생하게 된다.
그렇다면 Load 이벤트가 발생했을때 어떠한 코드를 수행하게 해 주어야 하는데, 이것이 바로 이벤트 핸들러이다.
이 놈들을 잡아 내려면 다음과 같은 방법으로 하면 된다.
이벤트 핸들러를 만들때 어떠한 메소드에서 해당 이벤트를 처리할지를 정해 놓고, 그 놈을 이벤트 핸들러로 등록한다.
위의 코드라면 Form이 Load되는 이벤트가 발생할때 Form1_Load 메소드가 호출되게 되어진다.
만약 이벤트 핸들러를 제거하고자한다면 -= 을 사용하면 된다.
정확하게 말하면 메소드의 포인터를 넘긴다는 말 보다는 델리게이트(위임) 시킨다는게 더 맞는 말이다.
마치 함수포인터를 넘기는 방법이랄까?
C#에서는 다음과 같은 방법으로 이벤트 핸들러를 등록할 수 있다.
예를들어 Form(Frame, Window)라는게 있는데, 이 놈이 Load 될때에 이벤트가 발생하게 된다.
그렇다면 Load 이벤트가 발생했을때 어떠한 코드를 수행하게 해 주어야 하는데, 이것이 바로 이벤트 핸들러이다.
이 놈들을 잡아 내려면 다음과 같은 방법으로 하면 된다.
- public Form1()
- {
- InitializeComponent();
- // Form1_Load라는 메소드의 포인터(?)를 넘긴다.
- // 이벤트 핸들러를 등록할때에는 += 연산자를 사용한다.
- this.Load += new EventHandler(Form1_Load);
- }
- void Form1_Load(object sender, EventArgs e)
- {
- throw new Exception("The method or operation is not implemented.");
- }
이벤트 핸들러를 만들때 어떠한 메소드에서 해당 이벤트를 처리할지를 정해 놓고, 그 놈을 이벤트 핸들러로 등록한다.
위의 코드라면 Form이 Load되는 이벤트가 발생할때 Form1_Load 메소드가 호출되게 되어진다.
만약 이벤트 핸들러를 제거하고자한다면 -= 을 사용하면 된다.
정확하게 말하면 메소드의 포인터를 넘긴다는 말 보다는 델리게이트(위임) 시킨다는게 더 맞는 말이다.
'.Net Compact Framework' 카테고리의 다른 글
ActiveSync로 PDA 연결시 PC에서 자동으로 프로그램 띄우기 (1) | 2009.04.13 |
---|---|
[.NET CF] PC프로그램으로 PDA에 폴더 만들기 (1) | 2009.04.11 |
[.NET CF] 네이티브 dll 가져다 쓰기 (0) | 2009.04.10 |
[.NET CF] PocketOutlook API 초 간단 예제 (0) | 2009.04.09 |
M4655에서 SMS을 보내는 프로그램 정보 (0) | 2009.03.17 |