【问题标题】:Create UserControl on Parent Form from User Control从用户控件在父窗体上创建用户控件
【发布时间】:2017-06-07 06:54:45
【问题描述】:

我有一个父表单,按一下按钮,就会运行以下代码:

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

在此 UserControl 上,用户选择了一个 DataSet,然后可以通过单击 Modify 按钮对其进行修改,但是在 UserControl 中按下该按钮然后在父窗体上创建另一个 UserControl 的新实例的正确方法是什么?

InitializeUserControl 方法只是获取一个用户控件并将其添加到表单的控件中,并将其位置设置为表单中的特定点。

【问题讨论】:

    标签: c# user-controls


    【解决方案1】:

    如果InitializeUserControl() 是您表单上的Public 方法,那么您可以像这样使用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);
    

    这是一个紧密耦合的解决方案,这意味着您的 UserControl 现在的可重用性较低,因为它不能再与其他表单一起使用。

    松散耦合解决方案会让 UserControl 引发 自定义事件,让表单知道它应该向自己添加一个新实例。

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      相关资源
      最近更新 更多