C#Winform radiobutton状态切换

时间:2014-10-09 20:05:28

标签: c# winforms events radio-button

我需要链接单选按钮,因为它们不在同一容器中,所以我想将它们添加到列表中并处理它们的CheckedChanged事件

private List<RadioButton> Buttons = new List<RadioButton>();

public void Add( RadioButton button ) {
    button.CheckedChanged += button_CheckedChanged;
    Buttons.Add( button );
}

private void button_CheckedChanged( object sender, EventArgs e ) {
   var button = sender as RadioButton;
   if( button == null || button.Checked == false )
       return;
   foreach( var btn in Buttons ) {
       if( btn != button )
           button.Checked = false;
   }
}

当我点击一个单选按钮时,它保持未选中状态,知道为什么?

2 个答案:

答案 0 :(得分:4)

不应该

  foreach( var btn in Buttons ) {
       if( btn != button )
           btn.Checked = false;
   }

答案 1 :(得分:0)

可能是一个愚蠢的问题,但你将AutoCheck属性设置为true,对吗?如果设置为false,则单击时不会检查单选按钮。

button.AutoCheck = true;

或者您可以在设计器的属性窗口中更改它。