Удаление элементов из списка
Visual Basic позволяет программно удалять элементы из списка с помощью метода RemoveItem, имеющего следующий синтаксис:
NameList.RemoveItem index
где NameList — наименование списка, задаваемое свойством Name, a index — порядковый номер удаляемого элемента в списке. Например, чтобы удалить из созданного нами в предыдущем примере списка List1 второй элемент, необходим следующий программный код:
List1. RemoveItem 1
Совет Чтобы удалить все элементы из списка, можно использовать метод Clear (Очистить). В этом случае программный код выглядит так: Listl.Clear.
Свойства ListCount и ListIndex
Свойство ListCount позволяет определить количество элементов в списке. Его значение можно использовать, например, в том случае, если вы хотите обрабатывать элементы списка в цикле. Свойство ListIndex показывает номер выбранного элемента. При выборе первого элемента списка значение свойства равно 0 исходя из того, что нумерация элементов начинается с 0. Если выбран пятый элемент, значение свойства ListIndex будет равно 4. Рассмотрим пример использования свойства ListIndex. В форме, содержащей список ListBox, разместим текстовое поле, в котором будет отображаться выбранное из списка значение (рис. 8.12). Откройте окно редактора кода списка и для события click задайте следующую процедуру:
Private Sub List1_Click() Text1.Text = List1.List(List1.ListIndex) End Sub Запустите форму на выполнение. Выбираемое из списка значение отображается в расположенном рядом с ним текстовом поле.
Замечание Свойства ListCount и ListIndex доступны только при выполнении.
Рис.8.12.Использования свойства ListIndex для просмотра выбранного из списка элемента
Стиль оформления списка
Для управления внешним видом списка используется свойство Style (Стиль). Оно содержит два значения: Standard и CheckBox. По умолчанию используется значение Standard, которое мы уже рассматривали ранее. При установке для свойства Style значения CheckBox элементы списка оформлены в виде флажков. На рис. 8.13 показаны два вида списков в зависимости от значения свойства Style.
Рис.8.13. Два стиля оформления списков в зависимости от значения свойства Style
Совет Дляизменения значения свойства Style во время выполнения приложения можно использовать константы VisualBasic vbListBoxStandard и vbListBoxCheckBox.
Выбор нескольких элементов из списка
Программа Visual Basic позволяет использовать списки, предоставляющие пользователю выбирать из него несколько элементов. Для создания таких списков предназначено свойство MultiSelect (Множественный выбор). Оно может принимать значения, представленные в табл. 8.3.
Таблица 8.3. Значения свойства MultiSelect
Для обработки множественного выбора нельзя использовать свойство ListIndex, применяемое при работе с обычными списками. Выбор несколько элементов списка фиксируется в свойстве Selected, являющимся массивом, размерность которого равна количеству элементов в списке (определяется свойством ListCount). Выбранному элементу списка соответствует значение True соответствующего элемента свойства Selected, а остальным – False. Рассмотрим пример использования свойства Selected. Разместим в форме два списка. В первый список введем элементы с использованием свойства List. Список элементов во втором списке будет формироваться при перемещении на него фокуса после выбора элементов первого списка. Таким образом, второй список будет содержать выбранные в первом списке элементы. Для создания приложения выполните следующие действия:
1. Разместите в форме два списка с помощью кнопки ListBox на панели элементов управления. 2. Используя свойство List первого списка, введите элементы списка. 3. Чтобы разрешить выбор из первого списка нескольких элементов, установите для свойства MultiSelect значение 1-Simple. 4. Теперь необходимо задать процедуру формирования элементов второго, списка при перемещении на него фокуса. Для этого дважды щелкните мышью на втором списке. 5. В открывшемся окне редактора кода из списка Procedure выберите событие GotFocus (Получение фокуса) и введите следующий код: Private Sub List2_GotFocus() List2.Clear For i = 0 To Listl.ListCount - 1 If Listl.Selected(i) Then List2.AddItem(Listl.List(i)) Next End Sub На рис. 8.14 представлен полученный результат.
Рис. 8.14. Отображение выбранных значений во втором списке
|