C#多重按钮具有类似的行为

tha*_*max 3 c#

我是C#的新手,我现在正在关注这个C#教程.在本教程中,我遇到了开发计算器的练习.

http://www.homeandlearn.co.uk/csharp/csharp_s2p15.html

在练习中给出的解决方案中,每个数字按钮都有一个btn*_click方法,可以很容易地推广.

1 http://www.homeandlearn.co.uk/csharp/images/calculator/buttonCode_Numbers.gif

我们如何编写代码,以便我们可以概括这10个函数?我虽然可以通过修改initializeComponent()来完成,但是对它的评论说它不应该使用代码编辑器进行修改.

如何解决这个问题.

mel*_*okb 9

您可以将所有按钮绑定到同一个单击事件处理程序,并使用它sender来获取文本:

private void btnAnyButton_Click(object sender, EventArgs e)
{
    Button theButton = sender as Button;
    txtDisplay.Text += theButton.Text;
}
Run Code Online (Sandbox Code Playgroud)


Nat*_*han 6

您发布的教程是使用可视工作室中的可视化编辑器.默认情况下,设计人员将生成具有约定{controlname} _ {eventname}的代码,您可以在属性窗口中显式指定不同的事件名称,并且所有按钮可以共享相同的事件方法.

在此输入图像描述

然后看起来你可以重构这个:

private void btn_click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    if(btn != null)
       txtDisplay.Text += btn.Text;
}
Run Code Online (Sandbox Code Playgroud)

我希望有所帮助.