- •Лабораторная работа № 5
- •1. Элементы управления на пользовательской форме
- •1.1 Элемент управление – Выключатель (ToggleButton)
- •1.2 Элемент управление – Флажок (CheckBox)
- •1.3 Элемент управление – Переключатель (OptionButton)
- •1.4 Элемент управление – Список (ListBox)
- •1.5 Элемент управления – Поле со списком (ComboBox)
- •1.6 Элемент управления – Полоса прокрутки (ScrollBar)
- •1.7 Элемент управления – Счетчик (SpinButton)
- •1.8 Элемент управления – Рамка (Frame)
- •1.9 Элемент управления – Рисунок (Picture)
- •1.10 Использование элемента управления – список (ListBox)
- •2. Пример создания приложения с обработкой выбранных в списке значений
- •Порядок выполнения работы
- •Контрольные вопросы
1.7 Элемент управления – Счетчик (SpinButton)
Для создания объекта класса Счетчик (SpinButton) необходимо нажать кнопку на панели элементов и нарисовать его на UserForm. Счетчик отличается от полосы протяжки только отсутствием бегунка и некоторых свойств (например, LargeChange). Для данного элемента управления существуют специальные события, обработки нажатия на кнопки со стрелками (вверх и вниз): SpinUp(), SpinDown().
Например, для изменения значений в поле TextBox1 необходимо записать:
Private Sub SpinButton1_SpinDown()
TextBox1.Value = TextBox1.Value - 1
End Sub
Private Sub SpinButton1_SpinUp()
TextBox1.Value = TextBox1.Value + 1
End Sub
1.8 Элемент управления – Рамка (Frame)
Для создания объекта класса Рамка (Frame) необходимо нажать кнопку на панели элементов и нарисовать его на UserForm. Данный объект позволяет группировать объекты по назначению. Этот объект похож на объекты класса UserForm, только не является самостоятельным. Внутри этого объекта можно располагать любые другие интерфейсные объекты. Расположение внутренних объектов (свойства Left, Top) будет определяться относительно левого и верхнего края объекта класса Рамка. Причем, при перемещении объекта класса Рамка расположенные внутри данного объекта тоже будут передвигаться с рамкой, и сохранять внутреннее расположение. У объекта можно изменить заголовок (как и UserForm), для этого служит свойство Caption. Свойство ScrollBars регулирует положение линеек протяжки внутри объекта. Можно установить вид объекта Рамка без линеек протяжки, только с вертикальной линейкой, только с горизонтальной линейкой и одновременно с горизонтальной и вертикальной. А свойства ScrollLeft, ScrollTop управляют положением объектов внутри объекта Рамка (смещением слева и сверху). Свойства ScrollWidth, ScrollHeight определяют число пунктов протяжки (так, например, задание значения ScrollHeight равным 200, позволяет с помощью вертикальной линейки протяжки перемещать объекты внутри объекта класса Рамка по вертикали на 200 пунктов).
1.9 Элемент управления – Рисунок (Picture)
Для создания объекта класса Рисунок (Picture) необходимо нажать кнопку на панели элементов и нарисовать его на UserForm. Данный объект позволяет выводить на экран графики или картинки из файлов.
1.10 Использование элемента управления – список (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 |
Устанавливает способ выбора элементов списка. Допустимые значения:
|
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 |
Устанавливает способ выделения выбранных элементов. Допустимые значения:
|
MatchEntry |
Выводит первый подходящий элемент из списка при наборе его имени на клавиатуре. Допустимые значения:
|
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)