单选按钮选中验证
本文关键字:验证 单选按钮 | 更新日期: 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;
}