Button_click事件(在代码中)为多个GroupBox中的每个按钮

时间:2014-04-20 13:07:05

标签: c# winforms

我有多个groupbox,其中一个包含问题和一些答案以及每个button中的GroupBox答案。我在Form_Load方法中创建GroupBox及其控件,而不是手动创建。如何处理每个button_click的{​​{1}}个事件?我认为没有必要为每个button编写这个句柄方法,因为只有两个不同的button_handler:对于只有一个正确答案的问题,对于问题,多个答案可以是正确。 我的问题看起来像:

我的GroupBox结构:

button

1 个答案:

答案 0 :(得分:1)

您可以为按钮创建常规点击事件:

Button b = new Button();
b.Name = "button" + (i + 1).ToString();
b.Click += b_Click;

并在方法中检查发件人以查看单击了哪个按钮:

void b_Click(object sender, EventArgs e) {
  Button b = sender as Button;
  if (b != null) {
    GroupBox gp = b.Parent as GroupBox;
    int bIndex = Convert.ToInt32(b.Name.Substring(6)) - 1;
    MessageBox.Show(string.Format("I'm clicking {0}, question index #{1}",
                    gp.Name, bIndex));        
  }
}

之后,您必须使用questions[bIndex].answers变量中允许的答案检查GroupBox子控件的选中值。