назад | содержание | вперед

Выбор нескольких элементов из списка

Программа Visual Basic позволяет использовать списки, предоставляющие пользователю выбирать из него несколько элементов. Для создания таких списков предназначено свойство Multiselect (Множественный выбор). Оно может принимать значения, представленные в табл. 8.3.

Таблица 8.3. Значения свойства Multiselect

Значение свойства

Описание

0-Non (Нет)

Стандартный список, используемый по умолчанию. Позволяет выбирать одно значение

1-Simple

(Простой множественный выбор)

Разрешен выбор нескольких элементов щелчком мыши или нажатием клавиши <Spacebar> (Пробел). Для отмены выбора необходимо щелкнуть мышью или нажать клавишу <Spacebar> еще раз

2-Extended

(Расширенный множественный выбор)

Разрешен выбор нескольких элементов с помощью способа, используемого в Windows. Для выбора элементов, расположенных подряд, необходимо при нажатой клавише <Shift> выбрать первый элемент из выбираемых, а затем последний. При этом будут выбраны все размещенные между ними элементы. Для выбора элементов, расположенных не по порядку, необходимо нажать клавишу <Ctrl> и, удерживая ее нажатой, выделить требуемые элементы списка


 

Для обработки множественного выбора нельзя использовать свойство 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 List1.ListCount — 1

If List1.Selected(i) Then List2.Addltem (List1.List (i))

Next

End Sub

На рис. 8.14 представлен полученный результат.

Рис. 8.14. Отображение выбранных значений во втором списке

 

 

назад | содержание | вперед