2007. 9. 28. 11:54
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
나머지는 일반 컨트롤에서 이벤트 처리 함수를 구현하는 방법과 동일 합니다.