проверка с помощью радиокнопки - PullRequest
1 голос
/ 04 августа 2011

У меня есть несколько панелей, и на каждой панели у меня есть 2 RadioButtons. Мне нужен способ проверить, не была ли выбрана радиопереключатель на каждой панели. Если панель содержит 2 радиокнопки во время цикла, и если эти 2 радиокнопки не выбраны, то для переменной (submit) будет установлено значение false.

Вот мой код -

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

Ответы [ 4 ]

2 голосов
/ 04 августа 2011

По умолчанию каждая панель будет содержать только одну радиостанцию, отметив, что переключатели 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
                }
            }
        }
    }
}
1 голос
/ 02 апреля 2012
if (!radM.Checked && !radF.Checked)
{
    lblAnswer.Text = "Please Select male or female";
    txtHT.Text = null;
}
1 голос
/ 04 августа 2011

Ваш код не будет работать, потому что коллекция Container.Controls содержит ссылки на «Control», поэтому вам нужно проверить каждый элемент управления, чтобы определить, является ли он искомым типом.заставит ваш текущий код работать.Но я не совсем уверен, что вы спрашиваете.В каждом контейнере может быть выбрана только одна радиопереключатель.

1 голос
/ 04 августа 2011

Если вас интересует только одна конкретная радиопереключатель, было бы проще сохранить глобальную ссылку на нее.Таким образом, вы можете просто проверять кнопку непосредственно в любое время, а не проходить несколько циклов.

...