Для каждого <объект> в CheckedListBox. <объект> возвращается как Объект и не как Управление

Мне заполнили 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 непосредственно к объекту что-то, чего я хочу избежать, и мне действительно нужен код, чтобы быть максимально простым.

Я на самом деле провел один день, ища это, но не мог найти ответ.

9
задан Tivie 6 December 2012 в 01:05
поделиться

1 ответ

CheckedListBox не является набором элементов управления CheckBox .
У него нет набора объектов оболочки.

Элемент управления CheckedListBox - это простой элемент управления, который может отображать только простой список элементов; похоже, вы ищете что-то более мощное. (Например, невозможно изменить цвет фона отдельного элемента без рисования владельцем)

Вы должны использовать ListView (со свойством CheckBoxes , установленным в значение true) вместо.
Затем вы можете просмотреть экземпляры ListViewItem в его коллекции Items .

8
ответ дан 4 December 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: