Стандартные элементы управления

Создание интерфейса приложения начинается с этапа визуального проектирования. К проекту добавляют новую форму, в которую помещают нужные элементы. Потом задают значения свойств элементов. Тем самым определяется внешний вид окна, с которым будет работать пользователь. И наконец, пишут код процедур для обработки событий, происходящих с этими элементами. Как выполняются эти операции, было описано выше. В данном параграфе мы займемся изучением самих элементов.

Доступные элементы управления отображаются в окне ToolBox. Там всегда имеется 15 элементов, которые нельзя удалить. Эти элементы в литературе иногда называют внутренними. Кроме них могут присутствовать другие элементы, которые добавляются в окно командой Tools/Additional Controls.

Элементы управления – это объекты, поэтому их изучение сводится к изучению свойств, методов и событий каждого элемента. Нужно сказать, что свойств, методов и событий у каждого элемента достаточно много, но не все из них используются одинаково часто. Поэтому мы рассмотрим только основные. Наиболее полное их описание можно найти в справочной системе.

Как уже говорилось, свойство (Name) определяет имя, которое используется для ссылок на элемент в программах на VBA. Рекомендуется сразу после того, как вы поместили элемент управления в форму, изменить имя, заданное по умолчанию, на другое, отражающее назначение объекта. Если вы где-нибудь в программе используете имя элемента управления, а потом измените значение свойства (Name), то в тексте оно автоматически не изменится.

Существуют свойства, которые для всех или для многих элементов управления называются одинаково и имеют один и тот же смысл. В дальнейшем они не будут указываться для элементов, а будут описываться только специфические свойства каждого элемента. Эти свойства приведены в табл. 12.6.

Таблица 12.6

Общие свойства стандартных элементов управления

Свойство

Описание

(Name)

Имя, которое используется для ссылок на элемент управления в программе. Нельзя изменить во время выполнения программы

Left

Позиция элемента относительно левого края формы или рамки

Top

Позиция элемента относительно верхнего края формы или рамки

Height

Высота элемента

Width

Ширина элемента

Caption

Текст заголовка или надписи

Enabled

Определяет доступность элемента. Возможные значения True/False. Если значение свойства равно False, элемент не доступен пользователю

Visible

Определяет, будет ли элемент управления виден на экране во время выполнения программы (True/False). Если значение свойства равно False, элемент не виден на экране

TabIndex

Определяет порядок перемещения от объекта к объекту с помощью клавиш Tab или Shift + Tab

Среди общих методов стандартных элементов управления отметим SetFocus, он передает фокус объекту, и Move, он перемещает объект.

Форма. Форма (UserForm) не относится к управляющим элементам, но она является объектом и обладает большим набором свойств, методов и событий. Большинство из перечисленных выше свойств элементов имеют тот же смысл для формы. Форма добавляется в проект командой Вставка/UserForm. Основные свойства, методы и события формы приведены в табл. 12.7–12.9.

Таблица 12.7

Свойства формы

Свойство

Описание

BorderStyle

Определяет вид формы: 0 – без рамки, 1 – имеет рамку

BackColor

Определяет цвет фона

BorderColor

Определяет цвет рамки

Picture

Определяет рисунок, размещаемый на форме

PictureAlignment

Определяет расположение рисунка на форме

PictureSizeMode

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

PictureTiling

Определяет, нужно ли размножить рисунок на форме или поместить его в единственном экземпляре

StartUpPosition

Значение, определяющее положение формы при ее первом появлении на экране

Таблица 12.8

Методы формы

Метод

Описание

Load

Загружает форму, но не отображает ее на экране

Show

Выводит изображение формы на экран

Hide

Убирает изображение формы с экрана, не выгружая ее из памяти

Unload

Удаляет форму из памяти

Move

Перемещает и изменяет размеры формы

Таблица 12.9

События формы

Событие

Описание

Initialize

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

Activate

Происходит, когда форма становится активным окном (внутри приложения)

Deactivate

Происходит, когда форма больше не является активным окном (теряет фокус)

Click

Происходит при щелчке по форме левой кнопкой мыши

DblClick

Происходит при двойном щелчке по форме левой кнопкой мыши

Resize

Происходит при изменении размера формы

Элемент Кнопка. Элемент Кнопка (CommandButton) очень часто используется при разработке интерфейса. На поверхности кнопки можно поместить надпись или рисунок. Основное событие элемента – Click. Оно возникает, когда пользователь нажал на кнопку, используя мышь или клавиатуру. Основные свойства элемента приведены в табл. 12.10.

Таблица 12.10

Свойства элемента Кнопка (CommandButton)

Свойство

Описание

Caption

Задает текст надписи на кнопке

Picture

Определяет рисунок на поверхности кнопки. Во время выполнения для изменения свойства нужно использовать функцию Load Picture: Btn1.Picture = LoadPicture(“c:Piccopy.bmp")

PicturePosition

Определяет расположение рисунка относительно надписи

Элемент Поле. Элемент Поле (TextBox) обеспечивает возможность ввода текста пользователем. Текстовые окна поддерживают ввод и редактирование текста без всякого вмешательства с вашей стороны. Вырезать, копировать и вставлять текст можно с помощью стандартных для Windows сочетаний клавиш: Ctrl + X, Ctrl + С, Ctrl + V. Основные свойства элемента TextBox приведены в табл. 12.11.

Таблица 12.11

Свойства элемента Поле (TextBox)

Свойство

Описание

Text

Главное свойство, содержащее текст, введенный пользователем или присвоенный ему программой

SelText

Содержит выделенный в ноле текст

Locked

При Locked = True пользователь не может ввести текст в поле

MultiLine

При MultiLine = True поле может содержать более одной строки

ScrollBars

Определяет наличие полос прокрутки при многострочном режиме

BorderStyle

Определяет стиль обрамления

BackColor

Определяет цвет фона

BorderColor

Определяет цвет рамки

ForeColor

Определяет цвет шрифта

Font

Используется для установки параметров шрифта

PasswordChar

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

Элемент Надпись. Элемент Надпись (Label) обычно используется для вывода различных текстов в форме. Он может содержать и рисунок. Пользователь не может изменить надпись, но программа в период выполнения может изменять значение надписей. Основные свойства элемента приведены в табл. 12.12.

Таблица 12.12

Свойства элемента Надпись (Label)

Свойство

Описание

Caption

Содержит текст надписи

AutoSize

По умолчанию имеет значение False. Если изменить на True, то элемент будет автоматически менять свои размеры в соответствии с текстом

BackStyle

Задает режим для фона

BorderStyle

Определяет стиль обрамления

BackColor

Определяет цвет фона

BorderColor

Определяет цвет рамки

ForeColor

Определяет цвет шрифта

Font

Используется для установки параметров шрифта

Элемент Рисунок. Элемент Рисунок (Image) предназначен для вывода содержимого графических файлов в форме. Элемент не позволяет редактировать рисунок. Поддерживаются следующие форматы файлов: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf. Основные свойства элемента приведены в табл. 12.13.

Таблица 12.13

Основные свойства элемента Рисунок (Image)

Свойство

Описание

AutoSize

Если свойство имеет значение True, то при загрузке рисунка его размеры сохраняются, при этом элемент Image изменит свои размеры так, чтобы они точно соответствовали размерам рисунка

Picture

Определяет файл, содержащий рисунок. Во время выполнения программы следует использовать функцию LoadPicture:

Image1.Picture = LoadPicture("ИмяФайла")

Чтобы удалить рисунок, выполните

Imagel.Picture =""

PictureAlignment

Определяет расположение рисунка. Возможные значения:

FmPictureAlignmentTopLeft (в левом верхнем углу);

FmPictureAlignmentTopRight (в правом верхнем углу);

FmPictureAlignmentCenter (в центре);

FmPictureAlignnientBottomLeft (в левом нижнем углу);

FmPictureAlignmentBottomRight (в правом нижнем углу)

PictureSizeMode

Определяет, как выводить рисунок, если его размеры не соответствуют размерам объекта Image. Возможны значения:

fmPictureSizeModeClip (обрезать части рисунка, которые не помещаются);

fmPictureSizeModeStretch (масштабировать рисунок так, чтобы он занимал всю поверхность объекта);

fmPictureSizcModeZoom (изменить размеры рисунка, сохраняя пропорции, так чтобы он по высоте или по ширине точно соответствовал размерам объекта)

PictureTiling

Если значение свойства равно True, то рисунок покрывает поверхность объекта Image в виде мозаики. Если значение свойства равно False, то рисунок выводится в единственном экземпляре

Элемент Счетчик. Элемент Счетчик (SpinButton) позволяет уменьшать и увеличивать числовые значения. При щелчке на соответствующей стрелке изменяется значение самого элемента, но внешне это никак не выражается. Чтобы с помощью SpinButton изменять значение другого элемента, нужно написать программу. Основные свойства и события элемента приведены в табл. 12.14 и 12.15.

Таблица 12.14

Основные свойства элемента Счетчик (SpinButton)

Свойство

Описание

Мах

Максимальное возможное значение (целое)

Min

Минимальное возможное значение (целое)

SmallChange

Шаг изменения значения (целое) при щелчке на одной из стрелок. По умолчанию равен единице

Value

Текущее значение элемента

ControlSource

Определяет ячейку рабочего листа, которая связывается со значением элемента. Если изменяется значение свойства Value, то автоматически изменяется и значение этой ячейки, и наоборот

Orientation

Определяет ориентацию элемента (вертикальная или горизонтальная)

Таблица 12.15

Основные события элемента Счетчик (SpinButton)

Событие

Описание

Change

Возникает, когда пользователь нажимает на одну из кнопок элемента

Spin Down

Возникает, когда пользователь нажимает на кнопку со стрелкой вниз или влево

SpinUp

Возникает, когда пользователь нажимает на кнопку со стрелкой вверх или вправо

Элемент Полоса прокрутки. Элемент Полоса прокрутки (ScrollBar) позволяет выбирать значение из заданного диапазона с помощью мыши (изменяя положение бегунка). Основные свойства и события элемента приведены в табл. 12.16 и 12.17.

Таблица 12.16

Свойства элемента Полоса прокрутки (ScrollBar)

Свойство

Описание

Min, Мах

Устанавливает наименьшее (наибольшее) значение для элемента, отвечающее крайнему левому (правому) или крайнему верхнему (нижнему) положению в соответствующей полосе прокрутки. Диапазон рекомендуемых значений от -32 767 до 32 767

Value

Значение из диапазона от Min до Мах, которое соответствует положению бегунка полосы прокрутки

LargeChange

Устанавливает величину изменения свойства Value после щелчка на полосе прокрутки между бегунком и кнопкой со стрелкой (целое от 1 до 32 767)

SmallChange

Устанавливает величину изменения свойства Value после щелчка на кнопке со стрелкой (целое от 1 до 32 767)

ControlSource

Определяет ячейку рабочего листа, которая связывается со значением элемента. Если изменяется значение свойства Value, то автоматически изменяется и значение этой ячейки, и наоборот

Orientation

Определяет ориентацию элемента (вертикальная или горизонтальная)

Таблица 12.17

События элемента Полоса прокрутки (ScrollBar)

Событие

Описание

Change

Возникает, когда бегунок занял новое положение, или при щелчке на кнопке со стрелкой, или при изменении значения свойства Value в программе

Scroll

Возникает при движении бегунка (непрерывно)

Элемент Рамка. Элемент Рамка (Frame) используется в приложениях для создания визуальных или функциональных групп элементов, чаще всего переключателей и флажков. Он относится к элементам-контейнерам, т.е. к элементам, содержащим другие элементы. Например, поместим кнопку в элемент Рамка. Тогда кнопка прикрепляется к краям рамки. Кнопка будет перемещаться, когда перемещается рамка, а свойства Тор и Left кнопки будут определены относительно рамки. Удаляя контейнер, вы удаляете и все элементы, содержащиеся в нем. Создавая группу элементов, сначала поместите в форму элемент Рамка, а потом – необходимые элементы.

Основным свойством элемента Рамка является Caption. Оно содержит текст, который выводится в левом верхнем углу рамки и обычно является названием группы элементов.

Элемент Флажок. Элемент Флажок (CheckBox) дает возможность пользователю осуществить выбор типа Да/Нет. Можно создать группу элементов, однако все флажки в этой группе будут независимы друг от друга.

Основное свойства Флажка – Value. Оно равно True, если флажок установлен, и False, если флажок не установлен.

Свойство Caption содержит надпись, которая выводится рядом с элементом.

Основное событие для этого элемента – Click. Оно возникает при изменении свойства Value.

Элемент Выключатель. Элемент Выключатель (Toggle-Button) предназначен для тех же целей, что и Флажок. Они различаются только внешним видом. Выключатель имеет вид кнопки, которая может находиться в двух состояниях: отпущена или утоплена. На поверхности выключателя можно поместить рисунок. Для этого используется свойство Picture.

Элемент Переключатель. Переключатели (элементы OptionButton) обычно объединяются в группу. Они предназначены для выбора одного из нескольких взаимоисключающих значений. При выборе пользователем нужного элемента остальные элементы в группе автоматически устанавливаются в состояние "не выбран".

Для объединения переключателей в группу используются элементы-контейнеры, например Рамка. Если группа одна, то контейнером может служить форма.

Основное свойства Переключателя – Value. Оно равно True, если позиция выбрана (помечена точкой), и False, если позиция нс выбрана.

Основное событие элемента Переключатель – Click. Оно возникает при изменении значения свойства Value. В группе переключателей событие возникает только для того элемента, значение которого становится True.

Элементы Поле со списком и Список. Элемент Поле со списком (ComboBox) дает возможность пользователю выбрать нужную информацию из списка возможных значений или ввести ее в поле списка.

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

Основные свойства и методы элемента ComboBox приведены в табл. 12.18 и 12.19. Основное событие элемента – Change. Оно возникает, когда введено или выбрано новое значение списка.

Таблица 12.18

Свойства элемента Поле со списком (ComboBox)

Свойство

Описание

List

Используется для доступа к элементу списка. В качестве параметров указываются номера строк и столбцов. Также можно использовать для инициализации списка. Например, если в программе описан массив МуАггау(Ю), то присвоить списку значения этого массива можно, выполнив инструкцию:

MyList.List() = MyArray

Обратиться к элементу списка можно так:

MyList.List(i) = MyList.List(i) + 1

List Index

Содержит номер текущей строки. Равно -1, если никакой элемент не выбран

List Count

Количество строк в списке

RowSource

Определяет источник элементов списка. В качестве значения используется ссылка на диапазон рабочего листа Microsoft Excel. Например:

MyList.RowSource = "A1:А10"

Text

Содержит выбранное или введенное значение, которое отображается в текстовом поле

Style

Определяет, как пользователь может ввести значения в поле списка:

0 – поле с раскрывающимся списком. Позволяет ввести данные, которых нет в списке;

2 – раскрывающийся список. Не позволяет ввести новые данные

Таблица 12.19

Методы элемента Поле со списком (ComboBox)

Метод

Описание

AddItem

Objcct.AddItem строка[, индекс]

Добавляет элемент строка в список. Если задан индекс, то элемент помещается в указанную позицию. Если индекс не задан, то элемент добавляется в конец списка

RemoveItem

Object. Remove Item (индекс)

Удаляет из списка элемент с заданным индексом

Clear

Удаляет все строки из списка

Элемент Список (ListBox) применяется для хранения списка значений. Во время работы приложения пользователь может выбрать из списка одно или несколько значений.

Основные свойства элемента приведены в табл. 12.20. Основные методы и события элемента Список такие же, как у элемента Поле со списком.

Таблица 12.20

Основные свойства элемента Список (ListBox)

Свойство

Описание

List, ListCount, RowSource

Имеют такой же смысл, как у элемента Поле со списком

Listlndex

Содержит номер текущей строки. Равно -1, если никакой элемент не выбран. Если выделено несколько строк, то равно номеру строки, которая имеет фокус

MultiSelect

Определяет, можно ли выделить несколько элементов списка

Selected

Массив, состоящий из того же количества элементов, что и список. Для каждого элемента списка свойство равно True, если элемент выделен, и False, если нет

Text

Возвращает значение выбранного элемента списка