怎样使一个集合中的radiobutton默认选中项去除

我有一个panel,其中放了四个radiobutton按钮,打开时会默认选中第一个radiobutton。
现在我想去掉这个默认选项,让四个radiobutton按钮都处于未选中状态。
试了一下,用radioButton1.Checked = false;不能取消掉选中项
或者用

foreach (Control c in panel6.Controls)
            {
                if (c is RadioButton && ((RadioButton)c).Checked == true)
                {
                    ((RadioButton)c).Checked = false;
                }
            }

都失败了。
该如何做呢?

有一个变通的办法,再放入一个 radiobutton,和这几个一组,选中它,并且将其设置为隐藏。

在WinForms中,RadioButtons在同一个容器(例如Panel)中的行为是:一旦有一个RadioButton被选中,就不能再有未选中的状态。也就是说,在同一组的RadioButton中,至少有一个是选中的。

但是,你可以通过创建自定义的RadioButton来绕过这个限制。下面是一个示例:

public class MyRadioButton : RadioButton
{
    public new bool Checked
    {
        get { return base.Checked; }
        set 
        {
            if (value == false && base.Checked == true)
                return;
            base.Checked = value;
        }
    }
}

然后使用这个新创建的MyRadioButton代替原始的RadioButton。

另外一种解决方案可能更简单:不要将所有RadioButton放在同一个Panel内,而是每个单独放在各自的Panel内。这样每个RadioButton都处于各自独立的组内,可以被取消选中。

希望以上信息对您有所帮助!