블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

Custom Control 등을 구현 할 때 많이 사용되는 사용자 정의 이벤트를 만드는 법을 간단하게 정리 해봤습니다.

1. 핸들러 타입 정의

  이벤트 핸들러 타입을 정의 합니다. 필요에 따라 전달 값을 정의하면 됩니다.
  혹은 이미 .NET Framework에 정의된 핸들러를 사용해도 됩니다.

#region [컨트롤 이벤트 정의]
/// Boolean 값을 전달하는 Event Handler 
public delegate void wizEventHandlerBool(bool checkState);
/// 실행 상태가 변경 되었을 때 발생
public event wizEventHandlerBool StateChanged;
#endregion
 

2. 컨트롤에서 사용될 이벤트 전달 함수를 구현

  컨트롤 내부에서 이벤트를 처리 할 함수를 생성합니다.
  해당 델리케이트로 이벤트가 선언되어있는지 체크 후 이벤트를 발생 시킵니다.

#region [컨트롤 이벤트 구현][OnStateChanged]
/// 페이지 변경 이벤트
protected void OnStateChanged()
{ if(StateChanged != null) { StateChanged(this.cIsRun.Checked); } }
#endregion
 

3. 이벤트를 발생시킬 곳에서 이벤트 전달 함수를 호출

  필요한 곳에서 정의한 이벤트 전달 함수를 호출 하면 됩니다.
  예제에서는 체크박스의 상태가 변경된 경우 해당 이벤트를 발생시키도록 구현했습니다.


#region [Event][cIsRun_CheckedChanged]
private void cIsRun_CheckedChanged(object sender, EventArgs e)
{
	OnStateChanged();
}
#endregion
 
나머지는 일반 컨트롤에서 이벤트 처리 함수를 구현하는 방법과 동일 합니다.


출처 : http://wiz.pe.kr/180
반응형
Posted by blueasa
, |