我有一个用户控件/表单有一些控件(按钮,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]
}
用户无法访问我的代码,我只想让他使用界面访问我的控件,同时保持我的代码不变。 工厂是否是正确的解决方案,以及如何做到这一点?
答案 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();
}
}