我有两个按钮和一个文本框。当我单击按钮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事件处理程序。
答案 0 :(得分:0)
还有一种替代方法。
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的作用是什么?
在这里看到非常好的答案=> link
答案 1 :(得分:0)
您可以删除设计器生成的事件处理程序(使用设计器执行此操作或不会从designer.cs中删除)并实现您自己的事件并将其挂钩到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";
}
}