单选按钮选中验证

本文关键字:验证 单选按钮 | 更新日期: 2023-09-27 18:04:35

我有多个面板,在每个面板上我有2个RadioButtons。我需要一种方法来检查,如果一个单选按钮没有在每个面板中选择。如果面板在循环过程中包含两个单选按钮,并且如果这两个单选按钮没有被选中,则变量(submit)将被设置为false。

这是我到目前为止的代码-

        foreach(Panel panels in groupBox2.Controls)
        {
            foreach (RadioButton radio in panels.Controls)
            {
                if (!radio.Checked)
                {
                    submit = false;
                }
            }
        }

单选按钮选中验证

默认情况下,如果单选按钮AutoCheck为真,每个面板将只包含一个选中的单选按钮,无论如何你的问题:

foreach(Control parent in groupBox2.Controls)
{
    Panel panel = parent as Panel;
    if (panel != null)
    {
        foreach (Control child in panel.Controls)
        {
            RadioBox radio = child as RadioBox;
            if (radio != null)
            {
                if (!radio.Checked)
                {
                    MessageBox.Show(radio.ToString());
                    break;//if AutoCheck of all radio buttons seted to true
                }
            }
        }
    }
}

如果您只对一个特定的单选按钮感兴趣,那么保留对它的全局引用会更容易。这样你就可以在任何你想要的时候直接检查按钮,而不是经过多次循环。

您的代码将无法工作,因为容器。控件集合包含"Control"引用,因此您需要检查每个控件,看看它是否是您正在寻找的类型。

foreach(var control1 in groupBox2.Controls)         
{             
    if (control is Panel)
    {
        foreach (var control2 in control1.Controls)             
        {
            if (control2 is RadioButton)
            {
                if (!(control2 as RadioButton).Checked)                
                {                     
                     MessageBox.Show(control2.Text);
                }
            }
        }
    }
}            

这将使您当前的代码工作。但我不太确定你在问什么。每个容器中只能选择一个单选按钮

if (!radM.Checked && !radF.Checked)
{
    lblAnswer.Text = "Please Select male or female";
    txtHT.Text = null;
}