#c# #winforms
#c# #winforms
Вопрос:
Я хочу просмотреть все флажки в form.tab и пометить их как не установленные. Я обнаружил, что это было правильное решение:
foreach (Control c in this.Controls)
{
CheckBox cb = c as CheckBox;
if (cb! = null amp; amp; cb.Checked)
{
cb.Checked = false;
}
}
Но это не работает! И я не понимаю, почему. Я наблюдал за отладчиком и cb
есть null
. Почему это может быть? Где я ошибся?
Комментарии:
1. Может быть, ваши флажки не в форме, а в другом контейнере?
2. Нет:( Main_form.j1checkbox1…
Ответ №1:
Вероятно, флажки содержатся в каком-то контейнере, поэтому вам придется выполнить рекурсивный поиск или выполнить итерацию непосредственно по коллекции элементов этого контейнера.
Ответ №2:
private void FindControls(Control Page)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
if (cb! = null amp; amp; cb.Checked)
{
cb.Checked = false;
}
}
else
{
if (ctrl.Controls.Count > 0)
{
FindControls(ctrl);
}
}
}
}
Ответ №3:
Попробуйте изменить первую строку из:
this.Controls
Для
this.tab.Controls
Ваш текущий код зацикливается на элементах управления непосредственно в форме. Вам нужно перебирать элементы управления на вкладке.
Ответ №4:
Я думаю, что элементы управления флажками не находятся в форме, возможно, они в другом контейнере, таком как групповое поле или панель