原理:利用委托和事件,本文將以圖文並茂的例子講述,告訴我們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,寫到這基本都完成了,有木有發現非常簡單呢
