checkedlistbox c как пользоваться

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

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

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

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

Выделенный элемент мы также можем получить с помощью свойства 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 (рисунок 1) представляет собой список, перед каждым элементом которого находится переключатель CheckBox .

Рис.1. Компонент CheckedListBox

Свойства компонента CheckedListBox приведены в таблице 1.

Таблица 1. Свойства компонента CheckedListBox
Свойство Описание
Items Элементы списка — коллекция строк
Items.Count Количество элементов списка
Sorted Признак необходимости автоматической сортировки ( True ) списка после добавления очередного элемента
CheckOnClick Способ пометки элемента списка. Если значение свойства равно False , то первый щелчок выделяет элемент списка (строку), а второй устанавливает в выбранное состояние переключатель. Если значение свойства равно True , то щелчок на элементе списка выделяет элемент и устанавливает во включенное состояние переключатель
CheckedItems Свойство CheckedItems представляет собой коллекцию, элементы которой содержат выбранные элементы списка
CheckedItems.Count Количество выбранных элементов списка, переключатели которых установлены в выбранное состояние
CheckedIndices Свойство CheckedIndices представляет собой коллекцию, элементы которой содержат номера выбранных (помеченных) элементов списка
ScrollAlwaysVisible Признак необходимости всегда отображать вертикальную полосу прокрутки. Если значение свойства равно False , то полоса прокрутки отображается, только если все элементы списка нельзя отобразить при заданном размере компонента
MultiColumn Признак необходимости отображать список в несколько колонок. Количество отображаемых колонок зависит от количества элементов и размера области отображения списка
Location Положение компонента на поверхности формы
Size Размер компонента без (для компонентов типа DropDown и DropDownList ) или с учетом (для компонента типа Simple ) размера области списка или области ввода
Font Шрифт, используемый для отображения содержимого поля редактирования и элементов списка

Сформировать список компонента CheckedListBox можно во время работы программы, применив метод Add к свойству Items . В инструкции вызова метода Add в качестве второго параметра можно указать константу True . В этом случае переключатель перед элементом списка будет установлен в выбранное состояние.

Приведем небольшой пример использования этого компонента.

Есть список с номерами картинок, а также 4 компонента pictureBox для их отображения (рисунок 2).

Рис.2. Приложение на этапе проектирования

При отметке соответствующего элемента списка картинка отображается, при снятии отметки — скрывается.

Приведем текст приложения.

Результат работы приложения приведен на рисунке 3.

Рис.3. Результат работы приложения

Прокомментируем приведенный фрагмент.

Основная работа выполняется в обработчике события ItemCheck компонента checkedListBox1 . Этот обработчик вызывается после изменения переключателя CheckBox .

Информация об измененном переключателе находится в параметре e . Например свойство Index содержит номер измененной строки, а свойство NewValue — новое значение переключателя.

Свойство CheckState компонента checkedListBox содержит возможные состояния флажка. Так, например, значение Checked говорит о том, что флажок установлен.

В зависимости от состояния флажка мы отображаем или скрываем соответствующую картинку.

На следующем шаге мы рассмотрим компонент Timer .

Компонент CheckedListBox представляет собой список, перед каждым элементом которого находится переключатель CheckBox. Свойства компонентаCheckedListBoxприведены в таблице:

Свойства, методы Описание
Items Элементы списка – коллекция строк
Items.Count Количество элементов списка
Sorted Признак необходимости автоматической сортировки списка после добавления очередного элемента
CheckOnClick Способ пометки элемента списка.
CheckedItems Представляет собой коллекцию, элементы которой содержат выбранные элементы списка
CheckedItems.Count Количество выбранных элементов списка, переключатели которых установлены в выбранное состояние
CheckedIndices Представляет собой коллекцию, элементы которой содержат номера выбранных (помеченных) элементов списка
MultiColumn Признак необходимости отображать список в несколько колонок. Количество отображаемых колонок зависит от количества элементов и размера области отображения списка
Items.Add Позволяет добавить строку во время работы программы. Например: checkedListBox1.Items.Add(«Красный»); В качестве второго параметра метода Add можно указать константуtrue. Например: checkedListBox1.Items.Add(«Красный», true); В этом случае переключатель перед элементом списка будет установлен в выбранное состояние.
GetItemChecked Возвращает значение, указывающее отмечен ли заданный элемент.
SetItemChecked Устанавливает состояние элемента с заданным индексом в trueилиfalse.

В качестве примера создадим тестовую программу.

Обработка результатов: по одному баллу прибавляется за каждый ответ «да» на вопросы 1,5,7 и за ответ «нет» на остальные вопросы.

Сумма набранных баллов:

1-3: У вас низкий коммуникативный уровень. Ваше поведение устойчиво, и вы не считаете нужным его изменять в зависимости от ситуации. Вы способны к искреннему самораскрытию в общении. Некоторые считают вас неудобным в общении по причине вашей прямолинейности.

4-6: У вас средний коммуникативный контроль. Вы искренни, но сдержанны в своих эмоциональных проявлениях. Вам следует больше считаться в своём поведении с окружающими людьми.

7-10: У вас высокий коммуникативный уровень. Вы легко входите в любую роль, гибко реагируете на изменения ситуации и даже в состоянии предвидеть впечатление, которое произведёте на окружающих.

Процедура для кнопки «Узнать результат»:

if (!checkedListBox1.GetItemChecked(0)) s++;

if (checkedListBox1.GetItemChecked(1)) s++;

if (checkedListBox1.GetItemChecked(2)) s++;

if (checkedListBox1.GetItemChecked(3)) s++;

if (!checkedListBox1.GetItemChecked(4)) s++;

if (checkedListBox1.GetItemChecked(5)) s++;

if (!checkedListBox1.GetItemChecked(6)) s++;

if (checkedListBox1.GetItemChecked(7)) s++;

if (checkedListBox1.GetItemChecked(8)) s++;

if (checkedListBox1.GetItemChecked(9)) s++;

Оцените статью