2017-01-22 97 views
0

我有一個父表,按鈕上的按壓,下面的代碼運行:上母體形式的用戶控制創建用戶控件

UCDataSetSearch dataSetSearch = new UCDataSetSearch(formStorage.Schema, "Schema"); 
InitializeUserControl(dataSetSearch); 

在此用戶控件的用戶選擇的數據集,然後可以通過修改它單擊「修改」按鈕,但在UserControl中按下該按鈕的正確方法是什麼,然後在父窗體上創建另一個UserControl的新實例?

InitializeUserControl方法只需要一個用戶控件並將其添加到窗體的控件並將其位置設置爲窗體中的特定點。

回答

0

如果InitializeUserControl()是你的窗體上的公共方法,那麼你可以把它直接利用FindForm()這樣的:

// ... running from within the UserControl ... 
// assuming Form1 is the parent form (change as necessary) 
Form1 f1 = (Form1)this.FindForm(); 
UCDataSetSearch dataSetSearch = new UCDataSetSearch(formStorage.Schema, "Schema"); 
f1.InitializeUserControl(dataSetSearch); 

這是一個緊密耦合的解決方案,這意味着現在你的用戶控件少可重複使用,因爲它不能再與其他表單一起使用。

一個鬆散耦合解決方案必須在用戶控件養自定義事件讓表單知道它應該添加一個新的實例本身。