Снять галочку со всех 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);
}
}