使用按钮2中按钮1的事件

Hel*_*der 1 c# events button

我有2个按钮.我试图将按钮1中的事件用于按钮2,这样他们都可以做同样的事情.
因此,通过单击2,按钮1也会被单击.我实际上是从菜单条项目这样做,但我认为它具有相同的原则.我只是不想有重复的代码.我认为button1.Click()可以工作,但显然它没有.我怎么能这样做?

简化示例:

private void button1_Click(object sender, EventArgs e)
{
    count += 1;
    label1.Text = Convert.ToString(count);
}
private void button2_Click(object sender, EventArgs e)
{
    count += 1;
    label1.Text = Convert.ToString(count);
}
Run Code Online (Sandbox Code Playgroud)

- 编辑 -

我使用的是一个类图,它没有显示任何可以/应该执行此操作的其他方法.需要坚持类图.

Geo*_*ett 7

你有几个选择.

  1. 将两个事件中的代码放入自己的方法中并调用它.
  2. 创建一个_click方法并将其设置为按钮的事件处理程序.
  3. 你可以打电话button2_Clickbutton1_click 我(我建议不要这个).

1

private IncrementAndDisplay()
{
    count += 1;
    label1.Text = Convert.ToString(count);
}
private void button1_Click(object sender, EventArgs e)
{
    IncrementAndDisplay();
}
private void button2_Click(object sender, EventArgs e)
{
    IncrementAndDisplay();
}
Run Code Online (Sandbox Code Playgroud)

2

// Change both button's clicked events to use this method in the IDE, or in code.
private void button_Click(object sender, EventArgs e)
{
    count += 1;
    label1.Text = Convert.ToString(count);
}
Run Code Online (Sandbox Code Playgroud)

3

private void button1_Click(object sender, EventArgs e)
{
    button2_Click(sender, e); // Bad!
}
private void button2_Click(object sender, EventArgs e)
{
    count += 1;
    label1.Text = Convert.ToString(count);
}
Run Code Online (Sandbox Code Playgroud)