Создание формы (UserForm) и добавление кнопок (СоmmandButton)
Создадим форму с двумя кнопками, как показано на Рис. 10‑1, и напишем программу, которая бы сообщала, какую кнопку нажал пользователь.
Рис. 10‑1. Форма с командными кнопками
Сначала создадим форму:
1. Чтобы вставить форму в проект воспользуйтесь командой Insert/UserForm (Рис. 10‑2).
Рис. 10‑2. Вставка формы
В результате выполнения данной команды (Рис. 10‑3) на экране появится форма и панель Элементы управления(ControlsТооlBох):
Рис. 10‑3. Новая форма и панель элементов управления
В Окне свойств (Рис. 10‑4) задайте имя формы (свойство Name– frmКомандныеКнопки) и заголовок (свойство Caption – Командные кнопки). В результате у Вас получится форма как на
Рис. 10‑5.
Рис. 10‑4. Окно свойств формы | Рис. 10‑5 |
ВНИМАНИЕ! При именовании форм и элементов управления пользуйтесь соглашением об именах, называемое венгерской нотацией. Суть соглашения состоит в том, что имя объекта начинается с префикса, который определяет вид этого объекта. Далее следует собственно имя объекта, которое отображает его суть. В таблице 1 приведены префиксы и примеры имен для элементов управления.
Таблица 1
Элемент управления | Префикс | Пример имени | |
TextBox | Поле | txt | txtФамилия |
Label | Надпись | lbl | lblИнформ |
CommandBar | Кнопка | cmd | cmdОК |
ListBox | Список | lst | lstСтуденты |
ComboBox | Поле со списком | cbo | cboФакультеты |
ScrollBar | Полоса прокрутки | scr | scrВниз |
SpinButton | Счетчик | spn | spnВыбор |
OptionButton | Переключатель | opt | optВыбор |
CheckBox | Флажок | chk | chkКвартал |
ToggleButton | Выключатель | tgl | tglПереключатель |
Frame | Рамка | fra | fraСтатус |
Image | Рисунок | img | imgСпутник |
MultiPage | Набор страниц | mlt | mltСтраницы |
TabStrip | Набор вкладок | tab | tabДва |
UserForm | Форма | frm | frmСессия |
2. Чтобы добавить в форму кнопку щелкните по значку , расположенному на панели элементов управления, и очертите мышкой контуры кнопки. Форма с кнопкой будет выглядеть примерно так:
Размеры формы и кнопок, их месторасположение в любой момент можно исправить (либо перетаскивая размерные маркеры, либо сам элемент). Чтобы удалить ненужный элемент управления щелкните по нему мышкой и нажмите клавишу [Delete].
3. В окне свойств кнопки CommandButton измените её имя (cmdOK), надпись (ОК), шрифт надписи (Tahoma, 9 пунктов, жирный) и свяжите её с клавишей [Enter] (Рис. 10‑6). В результате Ваша форма будет иметь вид (Рис. 10‑7):
Рис. 10‑6. Окно свойств кнопки CommandButton | Рис. 10‑7.Форма с кнопкой |
4. Аналогично добавьте кнопку Отмена, связав её с кнопкой [Escape] (для этого в окне её свойств для свойства Cancel установите True).
5. Измените размеры формы, сделайте кнопки одного размера и расположите их симметрично. Помните: Ваша форма должна быть аккуратной, удобной и строгой, а все её элементы - соразмерными. Чтобы посмотреть, как форма будет выглядеть на экране, нажмите кнопку [F4]. Чтобы убрать форму с экрана, щелкните по кнопке Закрыть.
ЗАМЕЧАНИЯ:
§ В окне свойств прописываются те свойства, которыми форма будет обладать при вызове её на экран. В процессе выполнения программы свойства формы и расположенных на ней элементов управления могут меняться. Классический пример - недоступность какого-то элемента управления (например, кнопки ОК) до тех пор, пока пользователь не введет/выберет все значения, которые он должен указать в форме.
§ Свойства формы и элементов управления можно задавать в процедуре инициализации формы, которая находится в модуле формы. Пропишем, например, программными средствами некоторые свойства формы frmКомандныеКнопки: определим заголовок формы – Командные кнопки, кнопку ОК свяжем с клавишей [Enter], а кнопку Отмена – с клавишей [Escape]. Для этого дважды щелкните по форме - на экране появится пустая процедураPrivate SubUserForm_Click(), которая нам не нужна, но в результате этого действия на экране появится список процедур, в котором надо выбрать процедуру Initialize, а затем ввести код:
Private SubUserForm_Initialize()
Caption = "Командные кнопки"
cmdOK.Default = True
cmdОтмена.Cancel = True
End Sub
В программе инициализации формы форма готовится к выводу на экран, и именно в таком виде её увидит пользователь. Как правило, всё, что можно задать в окне свойств, задается именно там, а, например, инициализация списков осуществляется программными средствами.
Эту же программу можно было бы поместить в любой модуль с произвольным именем:
SubКомандныеКнопки()
frmКомандныеКнопки.Caption = "Командные кнопки"
frmКомандныеКнопки.cmdOK.Default = True
frmКомандныеКнопки.cmdОтмена.Cancel = True
frmКомандныеКнопки.Show
End Sub
Сравните ссылки на одни и те же объекты в этих двух программах!
6. Теперь «скажем», что должно происходить, если пользователь щелкнет по кнопке ОК. Для этого дважды щелкните в форме по кнопке ОК – на экране появится пустая процедура Private Sub cmdOK_Click()(событие – щелчок по кнопке ОК)
7. Введите в ней следующий код:
Private Sub cmdOK_Click()
MsgBox "вы нажали на кнопку ОК!", vbInfomation, _
"Нажатая кнопка"
Unload Me
End Sub
8. Аналогично создайте процедуру обработки события «Щелчок по кнопке Отмена»:
Private Sub cmdОтмена_Click()
MsgBox "вы нажали на кнопку Отмена!", vbInfomation, _
"Нажатая кнопка"
Unload Me
End Sub
Осталось теперь запустить созданное приложение и протестировать его работу.