Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Информатике на Машфаке и ТЭА.doc
Скачиваний:
99
Добавлен:
29.02.2016
Размер:
3.28 Mб
Скачать

19.1.6 Событие – это то, что может произойти с диалоговым окном (UserForm) или элементом управления

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

Событие

Действие

Click

Щелчок

DblClick

Двойной щелчок

Код обработки события записывается на листе модуля.

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

В правой верхней части модуля кода находится раскрывающийся список с именами событий, связанных с данным объектом.

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

Private Sub UserForm_Click()

UserForm1.Caption = "Привет"

MsgBox "Ты нажал на меня"

End Sub

Основные обработчики для формы:

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

Private Sub UserForm_Activate()

UserForm1.Caption = "Событие Activate"

UserForm1.BackColor = vbGreen

End Sub

Click – инициализируется всякий раз, когда по форме щелкнуть в свободном месте.

Private Sub UserForm_Click()

MsgBox "Привет"

End Sub

Deactivate – инициализируется всякий раз, когда форма перестает быть активной.

Initialize – инициализируется всякий раз, когда форма впервые загружается в память посредством выполнения оператора Load или с помощью метода Show

Terminate - инициализируется всякий раз, когда форма выгружается из памяти.

Ключевое слово Me

В программном коде часто используется ключевое слово Me, которое возвращает имя активного окна.

Вместо программного кода

Private Sub UserForm_Click()

UserForm1.BackColor = vbRed

End Sub

Можно написать

Private Sub UserForm_Click()

Me.BackColor = vbRed

End Sub

Примеры:

Пример 1

Используются две формы UserForm1 UserForm2

  • Создать UserForm1

  • Вызвать обработчик Activate для UserForm1

Private Sub UserForm_Activate()

UserForm1.Caption = "Щелкните по мне"

End Sub

  • Создать UserForm2

  • Вызвать обработчик события Click для UserForm1

Private Sub UserForm_Click()

Load UserForm2

UserForm2.StartUpPosition = 3

UserForm2.Show

End Sub

  • Событие Deactivate для UserForm1

Private Sub UserForm_Deactivate()

UserForm1.Caption = "Я потеряла фокус"

UserForm2.Caption = "Фокус перешел от UserForm1 ко мне"

End Sub

Пример 2

Предполагается наличие двух форм UserForm1 UserForm2

В событии Initialize формы UserForm1 загружается и отображается форма UserForm2

Когда пользователь щелкает мышкой на UserForm2 она скрывается и отображается форма UserForm1

При щелчке на UserForm1форма UserForm2 отображается снова

Событие Initialize для UserForm1

Private Sub UserForm_Initialize()

Load UserForm2

UserForm2.Show

End Sub

Событие Click для UserForm2

Private Sub UserForm_Click()

UserForm2.Hide

End Sub

Событие Click для UserForm1

Private Sub UserForm_Click()

UserForm2.Show

End Sub