2011-11-30 28 views
0

我在ClientForms項目中有一個名爲FormMain的窗體窗體。現在這個(FormMain)表單在Scheduling項目中打開另一個名爲FormScheduler的表單。將按鈕事件發送到對象主機類

現在,我想在FormScheduler中觸發button_click方法事件時向FormMain發回消息。

我的解決方案創建一個循環依賴。還有另一種方式,比如使用代表嗎?

回答

1

使用事件。

在您的形式FormScheduer添加一個按鈕和下面的代碼:

public event EventHandler ButtonClicked; 

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

在你FormMain,實例化並顯示您的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"); 
} 
相關問題