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

时间:2014-07-23 11:43:07

标签: c#

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

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

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

2 个答案:

答案 0 :(得分:5)

您需要一个事件来处理每个按钮click。在这里,您将增加number。我将迭代所有表单控件,如果它们是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;
}

答案 1 :(得分:-1)

void SetClickEvents()
{
    // Add the listeners
    btn1.Click += new EventHandler(Button_Click);
    btn2.Click += new EventHandler(Button_Click);
    btn3.Click += new EventHandler(Button_Click);
    // ... repeat for 49, or even loop

}

void Button_Click(Object sender, EventArgs e)
{
  // DO your adding
}