Мне заполнили CheckedListBox ранее. Я хочу циклично выполниться с "для каждого / затем" через все объекты в CheckedListBox и сделать много "материала" с каждым итеративным элементом checkedlistbox.
пример кода:
For Each item In CheckedListBox1.Items
If item.Checked = True Then
'do stuff like
item.BackColor = Color.Blue
Else
'do other stuff
item.BackColor = Color.Brown
End If
Next
проблема, это - 'Объектный' тип и не тип 'Управления'. Если я вызываю итеративный var Как CheckBox, он бросает InvalidCastException, говоря тот тип 'Система. Строка' не может быть связана с типом 'Система. Windows. Формы. CheckBox'
Я знаю, что могу легко работать вокруг этого, но я хочу использовать для каждого / следующий цикл, так как у меня есть много кода в том цикле (и С не может использоваться), и всегда poiting непосредственно к объекту что-то, чего я хочу избежать, и мне действительно нужен код, чтобы быть максимально простым.
Я на самом деле провел один день, ища это, но не мог найти ответ.
CheckedListBox
не является набором элементов управления CheckBox
.
У него нет набора объектов оболочки.
Элемент управления CheckedListBox - это простой элемент управления, который может отображать только простой список элементов; похоже, вы ищете что-то более мощное. (Например, невозможно изменить цвет фона отдельного элемента без рисования владельцем)
Вы должны использовать ListView
(со свойством CheckBoxes
, установленным в значение true) вместо.
Затем вы можете просмотреть экземпляры ListViewItem
в его коллекции Items
.