Приведем основные свойства, методы и события пользовательской формы.
Наиболее часто используемые свойства объекта UserForm
Name | Возвращает имя пользовательской формы |
Caption | Возвращает текст, отображаемый в строке заголовка формы |
BackColor | Возвращает цвет фона формы |
BorderStyle | Устанавливает тип границы |
Picture | Указывает рисунок, отображаемый как фон формы |
Left И Top | Возвращают местоположение верхнего левого угла формы в пунктах |
Height и Width | Возвращают высоту и ширину формы в пунктах |
StartUpPosition | Возвращает значение, определяющее положение формы при ее первом отображении на экране. Допустимые значения:– Manual (начальное значение не устанавливается), – СenterOwner (выравнивание по центру объекта, к которому принадлежит форма), – CenterScreen (выравнивание по центру экрана), – Windows Default (положение верхнего левого угла экрана) |
Наиболее часто используемые методы объекта UserForm
Show | Отображает форму на экране |
Hide | Закрывает форму |
Move | Изменяет положение и размер формы |
PrintForm | Печатает изображение формы |
Основные события объекта UserForm.
Initilize | Происходит при отображении формы на экране |
Terminate | Происходит при закрытии формы |
2.5.1 Семейство Controls
Доступ к семейству всех элементов управления, расположенных в пользовательской форме UserForm, осуществляется с помощью семейства Controls. Например, чтобы скрыть все элементы управления формы UserForm, можно использовать код, в котором свойству Visible элемента управления, определяющему, отображается ли этот элемент на экране или нет, устанавливается значение False:
For Each Элемент in UserFormI.Controls
Элемент.Visible = False
Next Control
2.5.2 Создание пользовательской формы
Обсудим процесс создания пользовательской формы на примере конструирования простейшего диалогового окна.
Шаг 1 Выберите команду Сервис, Макрос, Редактор Visual Basic (Tools, Macro, Visual Basic) для того, чтобы перейти в редактор Visual Basic.
Шаг 2 Выберите команду Вставить User Form (Insert UserForm). В редакторе Visual Basic появятся: – Окно с пользовательской формой; – Панель инструментов Панель элементов (Toolbox) (рис. 2.6).
Шаг З Используя диалоговое окно Свойства (Properties), отображаемое нажатием кнопки и Панель элементов (Toolbox), создайте из пользовательской формы диалоговое окно, показанное на рисунке 2.7. Это окно состоит из трех кнопок и одного поля. Свойство Caption пользовательской формы определите равным Песнь о воробушке и бабочке, а кнопок – равными Первый акт, Второй акт и Третий акт.
Шаг 4 Для того чтобы написать процедуру обработки события нажатия кнопки Первый акт, дважды щелкните ее. Активизируется модуль UserForm1, в который введите процедуру: Private Sub CommandButton1_Click () TextBox1.Text = "Воробышек за бабочкой прыг-прыг-прыг" End Sub
Рисунок 2.6 Окно редактора Visual Basic с пользовательской формой и панелью элементов
Для обработки событий нажатий кнопок Второй акт и Третий акт в модуле UserForm1 введите следующие две процедуры:
Private Sub ConmmandButton2_Click ()
TextBoxl.Text = "Воробышек за бабочкой скок-скок-скок"
End Sub
Private Sub CommandButton3 Click()
TextBoxl.Text = "Воробышек бабочку ням-ням-ням"
End Sub
Шаг 5 Процесс создания диалогового окна и процедур, связанньк с ним, завершен. Для того чтобы проверить, как работает созданная программа, нажмите кнопку Запуск подпрограммы/UserForm (Run). На экране на фоне рабочего листа отобразится диалоговое окно Песнь о воробушке и бабочке. Для проверки функционирования кнопок нажмите, например, кнопку Первый акт. В поле выведется сообщение Воробышек за бабочкой прыг-прыг-прыг (рис. 2.7). Для закрытия диалогового окна Песнь о воробушке и бабочке нажмите системную кнопку, расположенную в верхней правой части строки заголовка диалогового окна.
Рисунок 2.7 Редактор Visual Basic с преобразованной пользовательской формой для создаваемого приложения
2.6 Общие свойства элементов управления
Приведем основные общие свойства элементов управления.
Name | Имя элемента управления |
Caption | Надпись, отображаемая при элементе управления |
AutoSize | Допустимые значения: True (устанавливает режим автоматического изменения размеров элемента управления так, чтобы на нем полностью помещался текст, присвоенный свойству Caption) и False (в противном случае) |
Visible | Допустимые значения: True (элемент управления отображается во время выполнения программы) и False (в противном случае) |
Enabled | Допустимые значения: True (пользователь вручную может управлять элементом управления) и False (в противном случае) |
Height и Width | Устанавливают геометрические размеры объекта (высоту и ширину) |
Left и Top | Устанавливают координаты верхнего левого угла элемента управления, определяющие его местоположение в форме |
ControlTipText | Устанавливает текст в окне всплывающей подсказки, связанной с элементом управления. В следующем примере элементу управления CommandButton1 назначен текст всплывающей подсказки это кнопка:CommandButton1.ControlTipText = "Это кнопка" |
BackColor, ForeColor и BorderColor | Устанавливают цвет заднего и переднего плана элемента управления, также его границы |
BackStyle | Устанавливает тип заднего фона |
BorderStyle | Устанавливает тип границы. Допустимые значения: - fmBorderStyleSingle (граница в виде контура) - fmBorderStyleNone (граница невидима) |
SpecialEffect | Устанавливает тип границы. Отличается от свойства BorderStyle тем, что позволяет установить несколько типов, но одного цвета. BorderStyle позволяет установить только один тип, но различных цветов |
Picture (создание картинки) | Внедряет картинку на элемент управления. Например, на поверхности кнопки картинка отображается с помощью следующей инструкции:CommandButtonI.Picture = _ LoadPicture("с:\my doc\Kpyг.bmp")Функция LoadPicture(ПолноеИмяФайла) считывает графическое изображение. Аргумент ПолноеИмяФайла указывает полное имя графического файла |
Picture(удаление картинки) | После того как картинка создана на элементе управления, иногда возникает необходимость ее удалить. Это легко достигается присвоением свойству picture значения LoadPicture("") |
Tag | Используется для хранения дополнительной информации о форме или элементе управления, которая может быть в последующем востребована в программе. В следующем примере в пользовательской форме расположены три кнопки и одно поле. Свойство Tag каждого из этих элементов управления, за исключением второй кнопки, установлено равным Показать. Свойство Tag второй кнопки установлено равным Спрятать. В цикле проверяется свойство Tag всех элементов управления и при инициализации диалогового окна отображаются только те элементы управления, у которых это свойство равно Показать.Private Sub UserForm Initialize () Dim Элемент As Object CommandButton1.Tag = "Показать"CommandButton2 . Tag = "Спрятать" CommandButton3 . Tag = "Показать" TextBox1.Tag = "Показать" For Each Элемент In ControlsIf Элемент.Tag="Показать" ThenЭлемент.Visible = True ElseЭлемент.Visible = FalseEnd If Next ЭлементEnd Sub |
Цвета, устанавливаемые свойствами BackColor, Forecolor и BorderColor, задаются шестнадцатеричными числами. Если эти свойства устанавливать не при помощи окна Свойства (Properties), а программно, вместо этих шестнадцатеричных чисел удобнее использовать соответствующие постоянные, задающие цвета.
Константы, задающие цвет
Константа | Значение | Цвет |
vbBlack | 0х0 | Черный |
vbRed | OxFF | Красный |
vbGreen | OxFFOO | Зеленый |
vbYellow | OxFFFF | Желтый |
vbBlue | OxFFOOOO | Синий |
vbMagenta | OxFFOOFF | Розовый |
vbCyan | OxFFFFOO | Голубой |
vbWhite | OxFFFFFF | Белый |
При создании формы или элемента управления, VBA устанавливает свойство объекта Name (т. е. его имя) по умолчанию. Например, для первой созданной кнопки свойство Name устанавливается равным CommandButton1, для второй – CommandButton2 и т. д. При разработке приложений с одной формой имя объекта, устанавливаемое по умолчанию, обычно не вызывает никаких проблем и в этом случае имена объектов оставляют без изменения. Если приложение обладает сложной структурой и состоит из нескольких форм, будет трудно отличить первую кнопку CommandButton1 первой формы, от первой кнопки CommandButton1 второй формы. В этом случае полезно переименовать объекты так, чтобы они легче различались. Для переименования объектов и переменных в среде Windows существует соглашение об именах, называемое венгерской нотацией. Суть соглашения состоит в следующем: имя объекта начинается с короткого префикса, одинакового для объектов одного и того же рода. За префиксом следует собственно имя, отображающее суть объекта. Ниже приведены префиксы и примеры имен управляющих элементов.
Примеры префиксов и имен | ||
Управляющий элемент | Префикс | Пример имени |
TextBox | txt | txtAcount |
Label | lbl | lblInform |
CommandButton | cmd | cmdOK |
ListBox | lst | lstNames |
ComboBox | cbo | cboFirms |
ScrollBar | scr | scrDown |
SpinButton | spn | spnUp |
OptionButton | opt | optChoice |
CheckBox | chk | chkSex |
ToggleButton | Tgl | TglSwitch |
Frame | fra | fraStatus |
Image | img | imgBall |
RefEdit | ref | ref Fun |
MultiPage | mit | rnltPages |
TabStrip | tab | tabTwoTabs |
UserForm | frm | frmGame |
2.7 Общие методы и события элементов управления