2017-01-22 56 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); 

这是一个紧密耦合的解决方案,这意味着现在你的用户控件少可重复使用,因为它不能再与其他表单一起使用。

一个松散耦合解决方案必须在用户控件养自定义事件让表单知道它应该添加一个新的实例本身。