Снимите все флажки с C # - PullRequest
       3

Снимите все флажки с C #

0 голосов
/ 18 декабря 2018

Я пытаюсь написать код, который снимет все флажки в моей форме при нажатии кнопки.Я знаю, что могу сделать

checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;

и так далее, но у меня есть около 35 флажков, поэтому я надеялся использовать более простой код.Я постоянно нахожу в Интернете вещи, которые выглядят так:

foreach (Control cBox in this.Controls)
{
    if (cBox is CheckBox)
    {
        ((CheckBox)cBox).Checked = false;
    }
}

И я надеялся использовать что-то подобное вместо того, чтобы писать checkBox1.Checked = false; около 70 раз (потому что у меня есть 2 кнопки, обе из которых нужноделайте разные вещи, а затем снимите все флажки.

Я видел другое решение, включающее панель стека или некоторый тип кода, который больше походил на Javascript или HTML, чем на C #, а также, казалось, включал написание каждого checkBox.Проверил статус как свою собственную строку, которая не спасает меня ни одной строки кода.

Любые советы будут оценены. Спасибо всем:)

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы можете использовать C # 7.0+ сопоставление с образцом:

foreach(Control control in controls)
{
    if (control is CheckBox chk) chk.Checked = false;
}
0 голосов
/ 18 декабря 2018

Отвечая на мой собственный вопрос с некоторой информацией от моего нового приятеля @HandbagCrab:

foreach (Control cBox in tabPage1.Controls)
{
if (cBox is CheckBox)
    {
        ((CheckBox)cBox).Checked = false;
    }
}

Добавление tabPage1 устранило мою проблему.Раньше я использовал this.Controls, который ограничивал доступ к элементам управления только в пределах этой зависимости.Я все еще мог управлять другими вещами на основе checkBoxes, называя их по отдельности как checkBox1.Checked = false;, но это было только потому, что я звонил им по имени, а не просил код просмотреть все Controls.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...