[英]radiobutton checked validation
我有多個面板,每個面板上都有2個RadioButtons。 我需要一種方法來檢查是否未在每個面板中選擇單選按鈕。 如果面板在循環期間包含2個單選按鈕,並且如果未選擇這2個單選按鈕,則變量(提交)將被設置為false。
到目前為止,這是我的代碼-
foreach(Panel panels in groupBox2.Controls)
{
foreach (RadioButton radio in panels.Controls)
{
if (!radio.Checked)
{
submit = false;
}
}
}
默認情況下,每個面板將只包含一個選中的單選按鈕,其單選按鈕“ AutoCheck
為true,無論如何,您的問題:
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
}
}
}
}
}
如果您只對一個特定的單選按鈕感興趣,那么對它進行全局引用會更容易。 這樣,您可以隨時根據需要直接檢查按鈕,而不必經過多個循環。
您的代碼將無法工作,因為Container.Controls集合包含“控件”引用,因此您需要檢查每個控件以查看其是否為您要查找的類型。
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.