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

C# 使用按钮2中按钮1的事件,c#,events,button,C#,Events,Button,我有两个按钮。我正在尝试将事件从按钮1使用到按钮2,以便它们都执行相同的操作。 因此,通过单击2,按钮1也会被单击。实际上,我是从菜单条项来做这件事的,但我想它有相同的原理。我只是不想有重复的代码。我原以为button1.Click()可以用,但显然不行。我怎么能这样做 简化示例: private void button1_Click(object sender, EventArgs e) { count += 1; label1.Text = Convert.ToString(

我有两个按钮。我正在尝试将事件从按钮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);
}
--编辑--


我正在使用一个类图,它没有显示任何其他可以/应该这样做的方法。需要坚持使用类图。

您有几个选项

  • 将两个事件中的代码放入其自己的方法中并调用该方法
  • 创建一个单键单击方法,并将其设置为按钮的事件处理程序
  • 你可以从
    button1\u-Click
    中调用
    button2\u-Click
    (我建议不要用这个)

  • 1.
    2.
    3.
    你有几个选择

  • 将两个事件中的代码放入其自己的方法中并调用该方法
  • 创建一个单键单击方法,并将其设置为按钮的事件处理程序
  • 你可以从
    button1\u-Click
    中调用
    button2\u-Click
    (我建议不要用这个)

  • 1.
    2.
    3.
    无论button1放在一个单独的方法中,并从两个按钮调用该方法, 最好将代码分开,然后不要复制任何内容

    您所提供的在按钮之间创建了不应该存在的非自然依赖关系


    关于类图,如果它是一个私有方法,那么它就不重要了。

    无论button1做了什么,都放在一个单独的方法中,并从两个按钮调用该方法, 最好将代码分开,然后不要复制任何内容

    您所提供的在按钮之间创建了不应该存在的非自然依赖关系


    关于类图,如果它是一个私有方法,那么它就不重要了。

    您应该使用一个单独的函数/方法来处理该操作,然后让两个按钮处理程序调用该函数:

    private void button1_Click(object sender, EventArgs e)
    {
        doTheThing();
    }
    private void button2_Click(object sender, EventArgs e)
    {
       doTheThing();
    }
    
    private void doTheThing()
    {
        count += 1;
        label1.Text = Convert.ToString(count);
    }
    

    您应该使用单独的函数/方法来处理该操作,然后让两个按钮处理程序调用该函数:

    private void button1_Click(object sender, EventArgs e)
    {
        doTheThing();
    }
    private void button2_Click(object sender, EventArgs e)
    {
       doTheThing();
    }
    
    private void doTheThing()
    {
        count += 1;
        label1.Text = Convert.ToString(count);
    }
    


    如果您创建一个函数()并使用此WinForms或WPF,是否有问题?如果您创建一个函数()并使用此WinForms或WPF,是否有问题?我刚刚编辑了我的OP,说我没有看到任何额外的方法。为什么你的第三个选择不好?那么选择第二个。选项3是不好的,因为如果
    button1\u Click
    button2\u Click
    相距很远,你看
    button1\u Click
    根本不清楚发生了什么。考虑到这一点,我相信他们在找你做第二件事。我不完全明白第二件事是怎么回事。我必须有一个名为btenter的按钮和另一个名为tsmiEnter的按钮。不能使用相同的名称。您不需要使用相同的名称。方法
    按钮1\u Click
    的名称可以是任何内容。在表单设计器中,单击按钮。然后单击属性中的事件部分。在那里,找到
    单击
    事件。您将看到button1_click和button2_click都是可选的。如果您在表单设计器中选择了该按钮,请查看属性面板(默认情况下为右下角)。寻找一个看起来像闪电的图标。然后,您将获得该按钮所有可用事件的列表。找到
    点击
    一个。我刚刚编辑了我的OP,说我没有看到任何额外的方法。为什么你的第三个选择不好?那么选择第二个。选项3是不好的,因为如果
    button1\u Click
    button2\u Click
    相距很远,你看
    button1\u Click
    根本不清楚发生了什么。考虑到这一点,我相信他们在找你做第二件事。我不完全明白第二件事是怎么回事。我必须有一个名为btenter的按钮和另一个名为tsmiEnter的按钮。不能使用相同的名称。您不需要使用相同的名称。方法
    按钮1\u Click
    的名称可以是任何内容。在表单设计器中,单击按钮。然后单击属性中的事件部分。在那里,找到
    单击
    事件。您将看到button1_click和button2_click都是可选的。如果您在表单设计器中选择了该按钮,请查看属性面板(默认情况下为右下角)。寻找一个看起来像闪电的图标。然后,您将获得该按钮所有可用事件的列表。查找
    单击
    一个。这正是我遇到此问题的原因。第二个按钮是菜单条上的一个按钮,我被要求输入提供的信息。我觉得只要按一个按钮1就足够了。评分的人在评分时就是一个******。然后像@George Duckett提供的那样,更改代码,使两个按钮调用相同的“单击”方法。(备选方案2)。也许你应该和你的评分员核实一下添加私有方法是否重要。通常不会。这正是我有这个问题的原因。第二个按钮是菜单条上的一个按钮,我被要求输入提供的信息。我觉得只要按一个按钮1就足够了。评分的人在评分时就是一个******。然后像@George Duckett提供的那样,更改代码,使两个按钮调用相同的“单击”方法。(备选方案2)。也许你应该和你的评分员核实一下添加私有方法是否重要。通常不会。
    
    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);
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        doTheThing();
    }
    private void button2_Click(object sender, EventArgs e)
    {
       doTheThing();
    }
    
    private void doTheThing()
    {
        count += 1;
        label1.Text = Convert.ToString(count);
    }