C#:使用接口

时间:2017-10-27 10:52:59

标签: c# winforms user-controls factory-pattern

我有一个用户控件/表单有一些控件(按钮,Groupboxes,...)。我想创建一个界面,让用户从自己的表单中访问这些控件。 这意味着当他点击表单中的按钮时,它将在我的表单中执行按钮的内容,如下所示:

    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 个答案:

答案 0 :(得分:1)

例如,假设您拥有这样的用户控件。并且您想要从父窗体中单击按钮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();
    }
}