Winform中如何實現父窗體傳遞資料到子窗體並重新整理子窗體(轉)
阿新 • • 發佈:2021-06-21
原理:利用委託和事件,本文將以圖文並茂的例子講述,告訴我們So Easy
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一.窗體展示
首先我們看到是一個父窗體和子窗體的合體,我們可以看到左邊是一個[樹控制元件]屬於父窗體,右邊的資料展示屬於一個[使用者控制元件],
我們要進行的操作是當點選左邊父窗體的樹控制元件時,實現右邊子窗體的資料變化
二.程式碼展示
首先是父窗體中的程式碼,我們需要定義一個帶引數的委託
1 2 3 4 5 6 7 |
/// <summary>
/// 繫結資料傳遞類編號代理
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-21 11:29:24</time>
/// <param name="strClassId">類編號</param>
public delegate void BindInfo( string strClassId);
|
其次是子窗體的程式碼,我們需要定義一個繫結資料的方法
1 2 3 4 5 6 7 8 9 10 11 |
/// <summary>
/// 根據類編號獲取資訊並繫結到窗體
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-28 14:33:31</time>
/// <param name="strClassId">類編號</param>
public void BindControl( string strClassId) {
//繫結操作
}
|
當上面兩步完成之後,我們就要就行呼叫,進行繫結操作了
只需要在父窗體中,當我們點選[樹節點]時在相應的按鈕事件中新增如下程式碼
1 2 |
//例項化子窗體
DataClassification dataDC = new DataClassification();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/// <summary>
/// 根據節點顯示不同資料
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-29 9:54:29</time>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tlDataType_FocusedNodeChanged( object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
{
if (tlDataType.FocusedNode != null )
{
//繫結代理
BindInfo bindDLG = new BindInfo(dataDC.BindControl);
//資料編號
string strClassId = tlDataType.FocusedNode.GetDisplayText(1);
//繫結窗體控制元件值
bindDLG(strClassId);
}
}
|
OK,寫到這基本都完成了,有木有發現非常簡單呢,
以上程式碼可以結合下面連結中文章裡面的操作就行聯合運用
Winform中如何實現子窗體重新整理父窗體
https://www.cnblogs.com/qufly/p/3433195.html