1. 程式人生 > 其它 >Winform中如何實現父窗體傳遞資料到子窗體並重新整理子窗體(轉)

Winform中如何實現父窗體傳遞資料到子窗體並重新整理子窗體(轉)

原理:利用委託和事件,本文將以圖文並茂的例子講述,告訴我們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> publicdelegatevoidBindInfo(
stringstrClassId);

  其次是子窗體的程式碼,我們需要定義一個繫結資料的方法

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> publicvoidBindControl(stringstrClassId)
{ //繫結操作 }

  

當上面兩步完成之後,我們就要就行呼叫,進行繫結操作了

只需要在父窗體中,當我們點選[樹節點]時在相應的按鈕事件中新增如下程式碼

1 2 //例項化子窗體 DataClassification dataDC =newDataClassification();

  

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> privatevoidtlDataType_FocusedNodeChanged(objectsender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { if(tlDataType.FocusedNode !=null) { //繫結代理 BindInfo bindDLG =newBindInfo(dataDC.BindControl); //資料編號 stringstrClassId = tlDataType.FocusedNode.GetDisplayText(1); //繫結窗體控制元件值 bindDLG(strClassId); } }

  

OK,寫到這基本都完成了,有木有發現非常簡單呢,
以上程式碼可以結合下面連結中文章裡面的操作就行聯合運用
Winform中如何實現子窗體重新整理父窗體

https://www.cnblogs.com/qufly/p/3433195.html