在多个按钮按下时执行相同的操作

use*_*200 -7 c#

我的表单上有50个按钮,并希望它们在按下时将+1添加到一个名为number的int

除了1个按钮,我想添加+2到数字

如果没有为49个按钮重复相同的代码,我怎么能这样做?

DGi*_*bbs 5

您需要一个事件来处理每个按钮click.在这里你会增加number.我将迭代所有表单控件,如果它们是a Button,则添加事件.

您显然希望处理按钮需要+2的情况,但是当您查看按钮Name属性时这很容易.

像这样的东西:

public Form1()
{
    InitializeComponent();

    foreach (var ctrl in this.Controls)
    {
        if (ctrl.GetType() == typeof(Button))
        {
            Button btn = (Button)ctrl;

            if (btn.Name == "ADD TWO")
            {
                btn.Click += btn_Click_Add_Two;
            }
            else
            {
                btn.Click += btn_Click_Add_One;
            }
        }
    }
}

void btn_Click_Add_One(object sender, EventArgs e)
{
    this.Number++;
}

void btn_Click_Add_Two(object sender, EventArgs e)
{
    this.Number += 2;
}
Run Code Online (Sandbox Code Playgroud)