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