C#:使用接口将用户控件中的现有控件集成到另一个窗体中



我有一个用户控件/窗体,其中包含一些控件(按钮,分组框,...)。我想创建一个接口,让用户从自己的窗体访问这些控件。这意味着当他单击表单中的按钮时,它将执行我的表单中按钮的内容,如下所示:

    void Btn1_Click(object sender, EventArgs e)
    {
        [some statements and preparation code]  
        using (var Dialog= new UserControlClass())
        {
            Dialog.Initialization();
            Dialog.ShowDialog(this);
        }
        [some statements code] 
     }
用户无法访问我的代码,

我只想让他使用接口访问我的控件,并保持我的代码不变。工厂是否是合适的解决方案,以及如何做到这一点?

例如,假设您有一个这样的用户控件。并且您想从父窗体单击到按钮1。

public partial class MyUserControl : UserControl
{
    public MyUserControl()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Hello!");
    }
    public void ShowDialog()
    {
        button1_Click(null, new EventArgs());
    }
}

为此,您可以在接口中添加一个公共函数(例如:ShowDialog ),并像这样从主窗体调用它。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        myUserControl1.ShowDialog();
    }
}

最新更新