我对 C# 非常陌生,并且在我的 Windows 窗体应用程序中的事件处理程序中遇到了问题。我在运行时创建了多个单选按钮(存储在buttonz
列表中),并且都分配了相同的事件处理程序。
在一个foreach
循环中:
buttonz.Add(new RadioButton());
buttonz[buttonz.Count - 1].CheckedChanged += new EventHandler(radio_checked);
下面是我的事件处理程序:
private void radio_checked(object sender, EventArgs e)
{
RadioButton btn = (RadioButton)sender;
Console.WriteLine("{0} Radio checked!", btn.Text);
}
输出是:
Button1 Radio checked! (1st button is checked)
Button1 Radio checked! (2nd button is checked)
Button2 Radio checked!
Button2 Radio checked! (3rd button is checked)
Button3 Radio checked!
因此,当按钮未选中时,也会调用事件处理程序。我怎样才能防止这种情况?我已经阅读了一些问题,但对于我的水平来说它们很复杂,因此我无法提取我需要的信息。解释性的答案非常受欢迎。谢谢。