我有两个按钮和一个文本框。当我单击按钮1时,我希望事件处理程序引发一个事件,使按钮2认为它已被单击。我想在不给按钮1和2相同的事件处理程序的情况下完成此操作。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// What do I put here that would get to the button2_click handler?
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "button 2 clicked";
}
}
上面的代码是我想要证明的一个可行性测试。目标是最终拥有一个多表单应用程序,其中在form1上单击的按钮会触发form2上按钮的button_click事件处理程序。
还有一种替代方法。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("1 clicked");
button2.PerformClick();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("2 clicked");
}
}
button2.PerformClick的作用是什么
请在此处查看非常好的答案=>链接
您可以删除设计器生成的事件处理程序(使用设计器来执行此操作,否则它不会从设计器中删除),然后实现自己的事件并手动将其挂接到2个事件,如下所示:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.Click += myEventHandler;
button2.Click += myEventHandler;
}
private void myEventHandler(object sender, EventArgs e)
{
textBox1.Text = "button 2 clicked";
}
}