C#Winform单选按钮状态切换

本文关键字:状态 单选按钮 C#Winform | 更新日期: 2023-09-27 18:26:08

我需要链接单选按钮,因为它们不在同一个容器中,所以我想将它们添加到列表中,并处理它们的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;
   }
}

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

C#Winform单选按钮状态切换

这不应该是吗

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

这可能是一个愚蠢的问题,但您将AutoCheck属性设置为true,对吗?如果它被设置为false,那么当你点击它时,单选按钮将不会被选中。

button.AutoCheck=true;

也可以在设计器的属性窗口中对其进行更改。