在.NET中,窗體也被定義為一個類,所以要想調用窗體中的某個方法,除了要將要調用的方法設為public外,還得創建一個窗體類的實例。然而,在下面這種情況下,就是當我們打開了窗體1(有了此窗體的一個實例),接著打開了窗體2,接下來我們想通過觸發窗體2中的某個事件來調用窗體1中的某個方法,而這時我們又不能再創建窗體的新的實例了,怎么辦?
解決的辦法之一就是利用.NET中提供的System.EventHandler來實現。方法如下:
建立一個有兩個Form的WindowsApplication,在Form1和Form2中各添加一個Button,下面我們來添加一些代碼。
首先,先在Form2中添加。
在Form2中添加一個System.EventHandler
publlic event System.EventHandler CallMessage;
在Form2中Button的Click事件中調用OnClicks
private void button1_Click(object sender, System.EventArgs e)
{
this.CallMessage(sender,e);
}
接下來,在Form1中添加。
在Form1中添加一個方法,方法的參數必不可少
public void ShowMessage(object sender, EventArgs e)
{
MessageBox.Show("another form call this method!");
}
在Form1中Button的Click事件中創建一個Form2的實例,并加入Form2的CallMessage的實現方法
private void button1_Click(object sender, System.EventArgs e)
{
Form2 frm=new Form2();
frm.CallMessage+=new EventHandler(ShowMessage);
frm.ShowDialog();
}
好了,我們的目的就達到了。
寫的是簡單了些,希望能起到拋磚引玉的作用。

