成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

利用EventHandler來實現兩個窗體間的事件調用

2010-08-28 10:50:27來源:西部e網作者:

  在.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();
         }

  好了,我們的目的就達到了。
  寫的是簡單了些,希望能起到拋磚引玉的作用。
關鍵詞:C#
主站蜘蛛池模板: 汉源县| 常德市| 酉阳| 江津市| 徐水县| 漳浦县| 申扎县| 拉孜县| 获嘉县| 台前县| 镇安县| 华宁县| 盘锦市| 炉霍县| 岳普湖县| 镇沅| 青岛市| 四平市| 恩平市| 井陉县| 元阳县| 西林县| 沾益县| 固原市| 方正县| 天津市| 芒康县| 南丹县| 南康市| 阿拉善盟| 桃江县| 临江市| 社会| 三穗县| 宝清县| 遂平县| 子长县| 辽中县| 海盐县| 遂川县| 青铜峡市|