C# - 单选按钮检查更改事件时没有响应
问题描述:
请让我有一个单选按钮,我从列表中动态添加(在数据库读取时获得),它显示正常,但不会触发检查更改事件。C# - 单选按钮检查更改事件时没有响应
public void fillradioButton()
{
for (int i = 0; i < officeLists.Count; i++)
{
RadioButton rbutton = new RadioButton()
{
Name = "rbutton",
Text = candidate_surname + " " + candidate_name,
Left = _RadiobuttonPos.X,
Top = _RadiobuttonPos.Y,
};
this.Controls.Add(rbutton);
_RadiobuttonPos.Y += 25;
}
}
private void RadioButtonCheckedChanged(object sender, EventArgs e)
{
MessageBox.Show("Okay I see U");
}
如果有任何单选按钮被选中,我想让消息框显示。 谢谢。
答
事件添加到您的单选按钮,例如:
public void fillradioButton()
{
for (int i = 0; i < officeLists.Count; i++)
{
RadioButton rbutton = new RadioButton()
{
Name = "rbutton",
Text = candidate_surname + " " + candidate_name,
Left = _RadiobuttonPos.X,
Top = _RadiobuttonPos.Y,
};
If(i == 0) rbutton.CheckedChanged += RadioButtonCheckedChanged;
this.Controls.Add(rbutton);
_RadiobuttonPos.Y += 25;
}
}
答
您需要将单击处理程序添加到单选按钮上的事件。在你初始化单选按钮后,在循环中的某一点,这样做:
rbutton.CheckedChanged += new EventHandler(RadioButtonCheckedChanged);
或者
rbutton.CheckedChanged += RadioButtonCheckedChanged;
由于要动态地创建按钮,you need to manually wire up the event handler。
+1
感谢你的帮助,'rbutton.CheckedChanged + = RadioButtonCheckedChanged;'帮助。 但是,当检查第二个选项时,消息框重复两次,第一个选择一次。无论选择何种选项,我都需要显示一次。谢谢。 – Cuado
另一个问题,'MessageBox.Show(“好吧,我看到U”); '检查第二个选项时重复两次,第一个检查一次。 我需要它只显示一次,而不考虑所选的选项。谢谢。 – Cuado
尝试在for循环之外添加这样的事件:this.Controls [“rbutton”]。CheckedChanged + = RadioButtonCheckedChanged;什么发生? – JDE
实际上现在用它来试试吧,它是更清洁的解决方案 – JDE