Использование элемента управления – список (ListBox)

Приведем часто используемые свойства элемента управления ListBox (cписок), применяемого для хранения списка значений. Из списка пользователь может выбрать одно или несколько значений, которые в последующем будут использоваться в тексте программы (таблица 4.6).

Таблица 4.6 – Основные свойства элемента управления ListBox

Свойство Описание
ListIndex Возвращает номер текущего элемента списка. Нумерация элементов списка начинается с нуля
ListCount Возвращает число элементов списка
TopIndex Возвращает элемент списка с наибольшим номером
ColumnCount Устанавливает число столбцов в списке
TextColumn Устанавливает столбец в списке, элемент которого возвращается свойством Text
Enabled Допустимые значения: True (запрещен выбор значения из списка пользователем) и False (в противном случае)
Text Возвращает выбранный в списке элемент
List Возвращает элемент списка, стоящий на пересечении указанной строки и столбца: List(row, column)
RowSource Устанавливает диапазон, содержащий элементы списка
ControlSource Устанавливает диапазон (ячейку), куда возвращается выбранный элемент из списка
MultiSelect Устанавливает способ выбора элементов списка. Допустимые значения: - fmMultiSelectSingle (выбор только одного элемента); - fmMultiSelectMulti (разрешен выбор нескольких элементов посредством либо щелчка, либо нажатием клавиши <Пробел>); - fmMultiSelectExtended (разрешено использование клавиши <Shift> при выборе ряда последовательных элементов списка)
Selected Допустимые значения: True (если элемент списка выбран) и False (в противном случае). Используется для определения выделенного текста, когда свойство MultiSelect имеет значение fmMultiSelect-Multi или 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 приведены в таблице 4.7.

Таблица 4.7 – Методы элемента управления ListBox

Метод Описание
Clear Удаляет все элементы из списка
RemoveItem Удаляет из списка элемент с указанным номером. Синтаксис: RemoveItem (index), где index – номер удаляемого из списка элемента
AddItem Добавляет элемент в список. Синтаксис: AddItem ([ Item [, varIndex]]), где Item – элемент (строковое выражение), добавляемый в список varIndex – номер добавляемого элемента

Для заполнения списка можно воспользоваться одним из следующих способов:

1) Поэлементно, если список состоит из одной колонки.

With ListBox1

.AddItem "Июнь"

.AddItem "Июль"

.AddItem "Август"

End With

2) Массивом, если список состоит из одной колонки.

With ListBox1

.List = Array("Июнь", "Июль", "Август")

End With

3) Из диапазона, в который предварительно введены элементы списка.Результат выбора (индекс выбранной строки) выводится в ячейку С1:

With ListBox1

.ColumnCount=2

.RowSource="A1:B4"

.ContrSource="C1"

.BoundColumn=0

End With

4) Поэлементно, если список состоит из нескольких колонок, например двух.

ListBox1.ColumnCount =2

ListBox1.AddItem

ListBox1.List(i, 0) = XX(i)

ListBox1.List(i, 1) = Y(i)

2. Пример создания приложения с обработкой выбранных в списке значений

Пример 5.2. Создадим приложение, которое обрабатывает список значений и позволяет подсчитать сумму, произведение, минимальное или максимальное значения, среди выбранных в списке элементов. Проектируемая пользовательская форма, представлена на рисунке 4.7.

Рисунок 4.7 – Пользовательская форма для работы со списком значений

Опишем назначение и принцип взаимодействия элементов управления на представленной форме:

- ListBox(список) – список значений из целых чисел, которые можно выделять. На основе выделенных значений и выбранных переключателей формируется ответ;

- CommandButton1(кнопка)– кнопка с надписью “ Заполнить ”. Нажатие на эту кнопку запускает процедуру обработки события (Private Sub CommandButton1_Click()), которая должна заполнить список случайными целыми числами в интервале от 1 до 100;

- CommandButton2(кнопка)– кнопка с надписью “ Очистить ”. Нажатие на эту кнопку запускает процедуру обработки события (Private Sub CommandButton2_Click()), которая должна очистить список, что можно реализовать, используя метод ListBox1.Clear;

- CommandButton3(кнопка)– кнопка с надписью “ Выполнить ”. Нажатие на эту кнопку запускает процедуру обработки события (Private Sub CommandButton3_Click()), которая выполняет заполнение поле TextBox1 с пояснением “ Ответ:” в зависимости выбранного переклю-чателя: OptionButton1, OptionButton2, OptionButton3, Option-Button4;

- CommandButton4(кнопка)– кнопка с надписью “ Выход ”. Нажатие на кнопку прячет форму;

- TextBox1(поле) с пояснением “ Ответ:”. В это поле будет выводиться результат. Поле должно быть недоступным для пользователя, т. е. пользователь не сможет ни ввести, ни скорректировать данные в нем;

- Label1(надпись) – пояснительная надпись для поля вывода ответа;

- Frame1 (рамка) Используется для группировки переключателей

- OptionButton1(переключатель) с надписью “Количество выбранных элементов”;

- OptionButton2(переключатель) с надписью “Среднее значение”;

- OptionButton3(переключатель) с надписью “Минимальное значение”;

- OptionButton4(переключатель) с надписью “Максимальное значение”;

На основе созданной в конструкторе формы, необходимо набрать для данной формы программный код, представленный ниже.

Процедура заполнения списка при нажатии на кнопку “ Заполнить ”:

Private Sub CommandButton1_Click()

Randomize

For i = 0 To N - 1

‘генерация массива случайных чисел

A(i) = Rnd * 100 + 1

'добавление элемента массива в список

ListBox1.AddItem (A(i))

Next i


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: