Снять галочку со всех item-ов в checkedlistbox-ах вложенных в groupbox-ы

Имеется panel1 на которой расположены groupbox-ы, в каждом из них расположен checkedlistbox, checkedlistbox-ы имеют разное кол-во item-ов. Идея такая: я ставлю галочки на любые item-ы, после жмакаю на кнопку и у всех item-ов галочка снимается (по возможности выделение тоже нужно снять, но там вроде по аналогии можно будет это сделать). Имеется следующий код который работает к примеру с переименованием groupbox-ов на panel1, но не работает если я пытаюсь снять галочки в checkedlistbox-ах:

foreach (var tb in panel1.Controls.OfType<CheckedListBox>())
                 {
                    for (int i=0; i<=tb.Items.Count-1; i++)
                    {
                        tb.SetItemChecked(i, false);
                        tb.GetItemChecked(i);
                    }

Ответы (1 шт):

Автор решения: Alexander Petrov

Вы пишете:

Имеется panel1 на которой расположены groupbox-ы, в каждом из них расположен checkedlistbox

Следовательно, код должен выглядеть примерно так:

foreach (var groupBox in panel1.Controls.OfType<GroupBox>())
{
    foreach (var checkedListBox in groupBox.Controls.OfType<CheckedListBox>())
    {
        for (int i = 0; i < checkedListBox.Items.Count; i++)
            checkedListBox.SetItemChecked(i, false);
    }
}
→ Ссылка