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; 
    } 
} 
+0

另一个问题,'MessageBox.Show(“好吧,我看到U”); '检查第二个选项时重复两次,第一个检查一次。 我需要它只显示一次,而不考虑所选的选项。谢谢。 – Cuado

+0

尝试在for循环之外添加这样的事件:this.Controls [“rbutton”]。CheckedChanged + = RadioButtonCheckedChanged;什么发生? – JDE

+0

实际上现在用它来试试吧,它是更清洁的解决方案 – JDE

您需要将单击处理程序添加到单选按钮上的事件。在你初始化单选按钮后,在循环中的某一点,这样做:

rbutton.CheckedChanged += new EventHandler(RadioButtonCheckedChanged); 

或者

rbutton.CheckedChanged += RadioButtonCheckedChanged; 

由于要动态地创建按钮,you need to manually wire up the event handler

+1

感谢你的帮助,'rbutton.CheckedChanged + = RadioButtonCheckedChanged;'帮助。 但是,当检查第二个选项时,消息框重复两次,第一个选择一次。无论选择何种选项,我都需要显示一次。谢谢。 – Cuado