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

利用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#
主站蜘蛛池模板: 耿马| 修水县| 福泉市| 香河县| 伊吾县| 精河县| 洛南县| 神木县| 渝中区| 定西市| 鹰潭市| 华安县| 黄浦区| 永嘉县| 渭源县| 高阳县| 长武县| 佛坪县| 杨浦区| 鄱阳县| 东方市| 威远县| 广宗县| 金坛市| 苍山县| 梓潼县| 浑源县| 班玛县| 克拉玛依市| 轮台县| 大荔县| 连山| 玛纳斯县| 赞皇县| 临西县| 红安县| 邢台县| 郯城县| 荥阳市| 定安县| 利津县|