Checkedlistbox c как проверить выбранные элементы
Перейти к содержимому

Checkedlistbox c как проверить выбранные элементы

Checkedlistbox c как проверить выбранные элементы

Элемент CheckedListBox представляет симбиоз компонентов ListBox и CheckBox. Для каждого элемента такого списка определено специальное поле CheckBox, которое можно отметить.

Все элементы задаются в CheckedListBox задаются в свойстве Items . Также, как и для элементов ListBox и ComboBox, мы можем задать набор элементов. По умолчанию для каждого добавляемого нового элемента флажок не отмечен:

Элемент CheckedListBox в Windows Forms

Чтобы поставить отметку в checkBox рядом с элементом в списке, нам надо сначала выделить элемент и дополнительным щелчком уже установить флажок. Однако это не всегда удобно, и с помощью свойства CheckOnClick и установке для него значения true мы можем определить сразу выбор элемента и установку для него флажка в один клик.

Другое свойство MultiColumn при значении true позволяет сделать многоколоночный список, если элементы не помещаются по длине:

Свойство MultiColumn в CheckedListBox

Выделенный элемент мы также можем получить с помощью свойства SelectedItem , а его индекс — с помощью свойства SelectedIndex . Но это верно только, если для свойства SelectionMode установлено значение One , что подразумевает выделение только одного элемента.

При установке для свойства SelectionMode значений MultiSmple и MultiExtended можно выбрать сразу несколько элементов, и тогда все выбранные элементы будут доступны в свойстве SelectedItems , а их индексы — в свойстве SelectedIndeces .

И поскольку мы можем поставить отметку не для всех выбранных элементов, то чтобы отдельно получить отмеченные элементы, у CheckedListBox имеются свойства CheckedItems и CheckedIndices .

Для добавления и удаления элементов в CheckedListBox определены все те же методы, что и в LstBox:

Add(item) : добавляет один элемент

AddRange(array) : добавляет в список массив элементов

Insert(index, item) : добавляет элемент по определенному индексу

Remove(item) : удаляет элемент

RemoveAt(index) : удаляет элемент по определенному индексу

Clear() : полностью очищает список

SetItemChecked и SetItemCheckState

К особенностям элемента можно отнести методы SetItemChecked и SetItemCheckState . Метод SetItemChecked позволяет установить или сбросить отметку на одном из элементов. А метод SetItemCheckState позволяет установить флажок в одно из трех состояний: Checked (отмечено), Unchecked (неотмечено) и Indeterminate (промежуточное состояние):

Практическое руководство. Определение отмеченных элементов в элементе управления CheckedListBox в Windows Forms

При представлении данных в элементе управления CheckedListBox Windows Forms можно выполнить итерацию по коллекции, хранящейся в свойстве CheckedItems, или выполнить пошаговый просмотр списка с помощью метода GetItemChecked, чтобы определить, какие элементы отмечены. Метод GetItemChecked принимает порядковый номер элемента в качестве аргумента и возвращает true или false . Вопреки тому, что можно было бы ожидать, свойства SelectedItems и SelectedIndices не определяют, какие элементы отмечены, они определяют, какие элементы выделены.

Определение отмеченных элементов в элементе управления CheckedListBox

Выполните итерацию по коллекции CheckedItems, начиная с 0, так как нумерация в коллекциях начинается с нуля. Обратите внимание, что этот метод возвращает номер элемента в списке отмеченных элементов, а не в общем списке. Поэтому если первый элемент в списке не отмечен, а второй — отмечен, приведенный ниже код отобразит текст вида «Checked Item 1 = MyListItem2».

Выполните пошаговый перебор коллекции Items, начиная с 0, так как элементы коллекции нумеруются с нуля, и вызовите метод GetItemChecked для каждого элемента. Обратите внимание, что этот метод возвращает номер элемента в общем списке, поэтому если первый элемент в списке не отмечен, а второй элемент отмечен, он отобразит текст вида: «Item 2 = MyListItem2».

Как программно проверить элемент в CheckedListBox в C#?

У меня есть CheckedListBox, и я хочу автоматически отметить один из элементов в нем.

на CheckedItems коллекция не позволяет добавлять в нее вещи.

6 ответов

нужно позвонить SetItemChecked С соответствующим пунктом.

на документация CheckedListBox.ObjectCollection есть пример, который проверяет каждый элемент в коллекции.

вот как вы можете выбрать / отметьте или снимите / снимите все элементы сразу:

в моей программе я использовал следующий трюк:

как это работает:
SetItemChecked (int index, bool value) — это метод, который устанавливает точное проверяемое состояние для конкретного элемента. Вы должны указать индекс элемента, который хотите проверить (используйте метод IndexOf, в качестве аргумента укажите текст item) и проверил состояние (true означает, что элемент проверен, false unchecked).
Этот метод проходит через все элементы CheckedListBox и проверки (или снимите флажки) С указанным индексом.
Например, короткий фрагмент цикла мой код-FOREACH проходит через указанные имена программ, и если программа содержится в CheckedLitBox (CLB. ), проверяет его:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *