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