有没有办法将几个私有的void button_click组合成一个?

时间:2018-01-20 11:37:58

标签: c#

我创建了一些条件,当有人点击我的单选按钮时会评估什么。

目前我有大约10个代码如下所示。 唯一的问题是102到103,104等等。

我的想法是跳过每个单片机点击的私人空白,并将其全部包含在一个普通人中。有没有一个很好的方法来实现这一目标? 谢谢你的建议。

    private void rBtn102_Click(object sender, EventArgs e)
    {
        if (rBtn102.Checked == true)
        {
            sDepartment = "102";
            updateExampleLabel();
            updateChooseOffer();
        }
    }

2 个答案:

答案 0 :(得分:3)

假设我们正在谈论System.Windows.Forms.RadioButton,您可以存储Tag property下每个RadioButton唯一的相关数据,并在附加到每个RadioButton.Click event的通用处理程序中查询该数据

private void rBtn102_Click(object sender, EventArgs e)
{
    RadioButton rb = sender as RadioButton;
    if (rb == null)
      return; // This is error

    if (rb.Checked)
    {
        sDepartment = (string)rb.Tag;
        updateExampleLabel();
        updateChooseOffer();
    }
}

请务必先为表单设计器中的每个按钮指定一个合适的标记。

答案 1 :(得分:2)

这个怎么样?使用单个方法作为EventHandler并检查radiobuttons名称,

string sDepartment = "";
private void Form1_Load(object sender, EventArgs e)
{
    rBtn_01.Click += new EventHandler(radio_Click);
    rBtn_02.Click += new EventHandler(radio_Click);
}

public void radio_Click(object sender, EventArgs e) {
     RadioButton tempButton = sender as RadioButton;
     switch(tempButton.Name)
     {
           case "rBtn_02":
           sDepartment = "102";
           break;
           case "rBtn_03":
           sDepartment = "103";
           break;
      }
      updateExampleLabel();
      updateChooseOffer();
}

希望有所帮助,