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