C# 使用按钮2中按钮1的事件
我有两个按钮。我正在尝试将事件从按钮1使用到按钮2,以便它们都执行相同的操作。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(
因此,通过单击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);
}