yoursyun
폼간의 이벤트 제어 본문
Delegate 를 통하여 폼간의 이벤트 제어를 하는 법.
시나리오 부모 폼에서 이벤트를 발생하여, 자녀 폼의 이벤트를 실행.
아래 예제는 간단한 문자열을 부모폼에서 넘겨 자녀의 레이블에 출력 하는 예제.
부모Form 클래스
{
// delegate 이벤트선언
public delegate void FormSendDataHandler(string data);
public event FormSendDataHandler FormSendEvent;
void btn_Click(object sender, EventArgs e)
{
this.FormSendEvent("부모폼에서 버튼을 클릭하였습니다.");
}
void 자녀폼열기_Click(object sender, EventArgs e)
{
Form2 f2 = new From2(this); // 부모를 통째로 날려 보내 참조를 만든다.
f2.Show();
}
}
자녀Form 클래스
{
public Form2(Form1 f)
{
// Form 1의 delegate 에 이벤트 메서드 등록
f.FormSendEvent += new Form1.FormSendDataHandler(f_FormSendEvent);
}
void f_FormSendEvent(string data)
{
부모로부터받은문자열.Text = data;
}
}
실행하여 자녀폼열기 버튼을 클릭한후 명령 버튼을 클릭하면 "부모폼에서 버튼을 클릭하였습니다."
문자열을 출력 한다.
-_-; 어... 쓰고 나니 쉽네... 난 왜이리 오래 걸렸지 으흑....