2011-11-30 1 views
0

ClientForms 프로젝트에 FormMain이라는 Windows Form이 있습니다. 이제이 (FormMain) 폼은 Scheduling 프로젝트에서 FormScheduler라는 다른 폼을 엽니 다.객체 호스트 클래스에 버튼 이벤트 보내기

이제 FormScheduler에서 button_click 메서드 이벤트가 트리거되면 FormMain으로 메시지를 보내려고합니다.

내 솔루션은 순환 종속성을 만듭니다. 대리인을 사용하는 것과 같은 또 다른 방법이 있습니까?

답변

1

이벤트 사용. 이처럼 FormScheduer 양식의 인스턴스를, 당신의 FormMain에서

public event EventHandler ButtonClicked; 

private void button1_Click(object sender, EventArgs e) { 
    if (ButtonClicked != null) { 
     ButtonClicked(this, EventArgs.Empty); 
    } 
} 

및 표시 : 양식 FormScheduer에서

버튼 다음 코드를 추가

var form = new FormScheduer(); 
// Listen for the ButtonClicked event... 
form.ButtonClicked += form__ButtonClicked; 
form.Show(); 

FormMain에 귀하의 form_ButtonClicked 방법이 될 것입니다 FormScheduler의 버튼을 클릭하면 호출됩니다.

void form__ButtonClicked(object sender, EventArgs e) { 
    Console.WriteLine("clicked"); 
}