Элемент управления ListBox (список) создается с помощью кнопки Список (ListBox) (рис. 2.11). Элемент управления ListBox применяется для хранения списка значений. Из списка пользователь может выбрать одно или несколько значений, которые в последующем будут использоваться в тексте программы.
Рисунок 2.11 Список в форме
Приведем наиболее часто используемые свойства элемента управления ListBox.
Listlndex | Возвращает номер текущего элемента списка. Нумерация элементов списка начинается с нуля |
ListCount | Возвращает число элементов списка |
Toplndex | Возвращает элемент списка с наибольшим номером |
ColumnCount | Устанавливает число столбцов в списке |
TextColumn | Устанавливает столбец в списке, элемент которого возвращается свойством Text |
Enabled | Допустимые значения: True (запрещен выбор значения из списка пользователем) и False (в противном случае) |
Text | Возвращает выбранный в списке элемент |
List | Возвращает элемент списка, стоящий на пересечении указанных строки и столбца. Синтаксис: List(row, column) |
RowSource | Устанавливает диапазон, содержащий элементы списка |
Control Source | Устанавливает диапазон (ячейку), куда возвращается выбранный элемент из списка |
MultiSelect | Устанавливает способ выбора элементов списка. Допустимые значения:– fmMultiSelectSingle (выбор только одного элемента);– fmMultiSelectMulti (разрешен выбор нескольких элементов посредством либо щелчка, либо нажатием клавиши <Пробел>);– fmMultiSelectExtended (разрешено использование клавиши <Shift> при выборе ряда последовательных элементов списка) |
Selected | Допустимые значения: True (если элемент списка выбран) и False (в противном случае). Используется для определения выделенного текста, когда свойство MultiSelect имеет значение fmMultiSelectMulti или fmMultiSelectExtended |
ColumnWidths | Устанавливает ширину столбцов списка. Синтаксис:ColumnWidths = String- String – строка, устанавливающая ширину столбцов.В следующем примере устанавливается ширина каждого из трех столбцов списка:With ListBox1 .ColumnCount = 3 .ColumnWidths = "20;30;30" End With |
ColumnHeads | Допустимые значения: True (выводятся заголовки столбцов раскрывающегося списка) и False (в противном случае) |
ListStyle | Допустимые значения:– fmListStyleplain (выбранный элемент из списка выделяется цветом);– fmListStyleOption (перед каждым элементом в списке располагается флажок и выбор элемента из списка соответствует установке этого флажка) |
MatchEntry | Выводит первый подходящий элемент из списка при наборе его имени на клавиатуре. Допустимые значения: – fmMatchEntryNone (режим вывода подходящего элемента в списке отключен);– fmMatchEntryFirstLetter(выводит подходящий элемент по набранной первой букве. В этом случае, предпочтительно, чтобы элементы списка были бы упорядочены в алфавитном порядке);– fmMatchEntryComplete (выводит подходящий элемент по полному набранному имени) |
BoundColumn | Устанавливает тип, возвращаемый свойством Value. А именно, если свойство BoundColumn равно 0, то свойство value возвращает индекс выбранной строки, т. е. в этом случае оно действует как свойство Listindex. Если свойство BoundColumn принимает значение из диапазона от 1 до количества столбцов в списке, то свойствоValue возвращает элемент из выбранной строки, стоящий в столбце, определенном свойством BoundColumn |
Приведем наиболее часто используемые методы элемента управления ListBox.
Clear | Удаляет все элементы из списка |
Remove Item | Удаляет из списка элементы с указанным номером. Синтаксис:Remove Item (index) index — номер, удаляемого из списка элемента |
Add Item | Добавляет элемент в список. Синтаксис:Addltem ( [ item [, varIndex]]) -item — элемент (строковое выражение), добавляемый в список-varlndex — номер добавляемого элемента |
Заполнение списка
Заполнить список можно одним из следующих способов
Поэлементно, если список состоит из одной колонки(рис. 2.12) | With ListBox1 .AddItem “Июнь” .AddItem “Июль” .AddItem “Август” .ListIndex = 0End With |
Рисунок 2.12 Список с одной колонкой элементов
Массивом, если список состоит из одной колонки | With ListBoxl.List = Array("Июнь","Июль","Август").Listlndex = 1End With |
Из диапазона a1: B4, в который предварительно введены элементы списка. Результат выбора (индекс выбранной строки) выводится в ячейкуС1 | With ListBoxl.ColumnCount = 2.RowSource = "A1:B4".ControlSource = "С1".BoundColumn = 0End With |
Поэлементно, если список состоит из нескольких колонок, например двух | With ListBoxl.ColumnCount = 2.Addltem "Июнь".ListfO, 1) = "Сессия".Addltem "Июль".Listfl, 1) = "Каникулы".Addltem "Август".List (2, 1) = "Каникулы"End With |
Массивом, если список состоит из нескольких колонок, например двух | Dim A (2, 1) As StringA(0, 0) = "Июнь"A(0, 1) = "Сессия"A(1, 0) = "Июль"А(1, 1) = "Каникулы"A(2, 0) = "Август"A(2, 1) = "Каникулы"With ListBox1.ColumnCount = 2.List = A End With |
Выбор нескольких элементов из списка
Свойство Multiselect позволяет устанавливать режим, при котором допустим выбор нескольких элементов из списка. Свойство Selected предоставляет возможность проверить, выбран ли элемент с указанным индексом. На рис. 2.13 показан выбор нескольких элементов из списка. Приведём пример использования этих свойств при вычислении среднего значения выбранных в списке элементов.
Рисунок 2.13 Выбор нескольких элементов из списка
With ListBox1
.List = Array(1, 3, 4, 5, 6, 7, 8, 9)
.Listlndex = 0
.MultiSelect = fmMultiSelectMuIti
Среднее = 0
n = 0
For i = 0 То .ListCount – 1
If .Selected(i) = True Then
n = n + l
Среднее = Среднее + .List(i)
End If
Next I
End With
Среднее = Среднее / n
2.8.6 Поле со списком
Элемент управления СоmbоВох (поле со списком) создается с помощью кнопки Поле со списком (ComboBox) (рис. 2.14). Элемент управления ComboBox применяется для хранения списка значений. Он сочетает в себе функциональные возможности списка ListBox и поля TextBox. В отличие от ListBox, в элементе управления СomboВох, отображается только один элемент списка. Кроме того, у него отсутствует режим выделения нескольких элементов списка, но он позволяет вводить значение, используя поле ввода, как это делает элемент управления TextBox.
Свойства объекта СomboВох, такие как Listlndex, ListCount, Enabled, List и методы Clear, RemoveItem и AddItem аналогичны соответствующим свойствам и методам списка ListBox. Кроме того, у него есть ряд уникальных свойств.
Рисунок 2.14 Поле со списком в форме
Приведем наиболее употребляемые из уникальных свойств элемента управления СоmbоВох.
DropButtonStyle | Устанавливает вид раскрывающегося списка. Допустимые значения:– FmDropButtonStylePlain(кнопка без символов);– FmDropButtonStyleArrowDisplays (кнопка со стрелкой);– FmDropButtonStyleEllipsis (кнопка с эллипсом);– FmDropButtonStyleReduce (кнопка с линией) |
ListRows | Устанавливает число элементов, отображаемых в раскрывающемся списке |
MatchRequired | Допустимые значения: True (в поле ввода раскрывающегося списка нельзя ввести значения, отличные от перечисленных в списке, т. е. в поле со спискам отключается функция поля ввода) и False (в противном случае) |
MatchFound | Допустимые значения: True (среди элементов раскрывающегося списка имеется элемент, совпадающий с вводимым в поле ввода раскрывающегося списка) и False (в противном случае) |
2.8.7 Полоса прокрутки и счетчик
Элемент управления ScrollBar (полоса прокрутки) создается с помощью кнопки Полоса прокрутки (ScrollBar) (рис. 2.15).
Рисунок 2.15 Полоса прокрутки и счетчик в форме
Приведем наиболее часто используемые свойства элемента управления ScrollBar.
Value | Возвращает текущее значение полосы прокрутки (только целые неотрицательные числа) |
Min | Минимальное значение полосы прокрутки (только целые неотрицательные числа) |
Max | Максимальное значение полосы прокрутки (только целые неотрицательные числа) |
SrnallChange | Устанавливает шаг изменения значения при щелчке по одной из стрелок полосы прокрутки |
Enabled | Допустимые значения: True (пользователь может изменить значение полосы прокрутки) и False (в противном случае) |
Visible | Допустимые значения: True (полоса прокрутки отображается во время выполнения программы) и False (в противном случае) |
Элемент управления SpinButton (счетчик) создается с помощью кнопки Счетчик (SpinButton) (рис. 2.15). Элемент управления SpinButton по своим функциональным возможностям аналогичен полосе прокрутки. Если не быть чрезмерным буквоедом, то можно сказать, что счетчик – это полоса прокрутки без ползунка. Счетчик имеет те же свойства Value, Min, Mах, Enabled, Visible и SmallChange, что и полоса прокрутки.