原理:利用委托和事件,本文將以圖文並茂的例子講述,告訴我們So Easy
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一.窗體展示
首先我們看到是一個父窗體,我們可以看到左邊是一個[樹控件],我們將點擊[添加大類]和[添加字典]時調出子窗體
接下來是子窗體展示,當我們點擊取消或者關閉按鈕時,我們需要看到我們添加或者修改的數據能展示出來,這就是我們要做的事
.
二.代碼展示
首先是子窗體中的代碼,我們需要定義一個委托和事件
//定義委托 public delegate void Refresh(); //定義事件 public event Refresh myRefresh;
其次是父窗體的代碼,我們需要定義一個刷新的方法
/// <summary> /// 刷新控件信息 /// </summary> /// <author>PengZhen</author> /// <time>2013-10-25 14:46:21</time> private void RefreshControl() { //綁定樹信息 BindTree(); }
當上面兩步完成之后,我們就要就行調用,進行刷新操作了
首先是父窗體中的代碼,當我們點擊[添加大類]或者[添加字典]時在相應的按鈕事件中添加如下代碼
//子窗體 ChildForm objCF= new ChildForm(); //定閱這個事件 objCF.myRefresh += new ChildForm.Refresh(RefreshControl); //展示子窗體 objCF.ShowDialog();
其次是子窗體的代碼,當我們點擊[取消]或者[關閉窗體]時在相應的按鈕事件中添加如下代碼
取消:
/// <summary> /// 取消 /// </summary> /// <author>PengZhen</author> /// <time>2013-10-23 15:15:57</time> /// <param name="sender"></param> /// <param name="e"></param> private void btCancel_Click(object sender, EventArgs e) { this.Close(); //關閉的時候執行事件 myRefresh(); }
關閉事件
/// <summary> /// 用戶點擊關閉窗體后執行操作 /// </summary> /// <author>PengZhen</author> /// <time>2013-10-25 15:00:45</time> /// <param name="sender"></param> /// <param name="e"></param> private void DataDictionaryInfoFrm_FormClosed(object sender, FormClosedEventArgs e) { //關閉的時候執行事件 myRefresh(); }
OK,寫到這基本都完成了,有木有發現非常簡單呢