Процедуры обработки событий

Программист определяет действие программы путём написания процедур обработки событий (event procedure). Процедура обработки событий – это участок кода, выполняемого в момент возникновения события заданного объекта. Для создания процедуры обработки стандартного события нужно дважды щёлкнуть по элементу управления в режиме конструктора. Перед вами появится новое окно, которое называется окном кода. Окно кода будет содержать шаблон подпрограммы обработки события, которое начинается служебными словами Private Sub и заканчивается – End Sub (Subroutine - подпрограмма).

Подпрограмма (процедура) – это самостоятельный блок кода, состоящий из операторов языка программирования, которому присвоено определённое имя. После слов Private Sub находится имя подпрограммы. В рассматриваемом случае подпрограмма называется cmdExit_Click. Это предопределенное имя, которое Visual Basic назначил для процедуры обработки события нажатия кнопки Exit. Оно состоит из названия кнопки, символа подчёркивания и названия события.

 
 

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

Изменение свойств объекта
во время выполнения программы

Визуальный способ проектирования приложения и многочисленные свойства объектов позволяют решить многие задачи ещё на стадии создания макета формы. Но создать работающее приложение в среде Visual Basic без написания код невозможно. Работу программы можно в простейшем случае разбить на три этапа:

Ø считывание данных, введённых пользователем из элементов управления;

Ø обработка данных;

Ø передача результатов обработки в элементы управления.

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

[Object.] Property

Object [.Property]

Object – необязательный параметр. Имя элемента управления (Name). Если имя объекта не указано, то обращение происходит к текущей форме. Для обращения к свойству текущей формы можно также использовать идентификатор Me.

Property – необязательный параметр. Имя свойства. Если имя свойства не указано, то обращение происходит к стандартному свойству объекта. Например, стандартное свойство надписи – Caption, текстового поля – Text, флажка – Value.

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

[Object.] Property = выражение

Object [.Property] = выражение

Понятие выражения мы подробно обсудим в следующей лекции. Отметим только, что в качестве выражения может быть использовано значение свойства другого объекта. Рассмотрим несколько примеров, которые показывают, как можно изменить свойства объекта во время выполнения программы.

'процедура обработки события нажатия кнопки cmdAbout

Private Sub cmdAbout_Click()

'изменение содержимого надписи lblMessage

lblMessage = "Программа отображает надпись в центре формы"

End Sub

'процедура обработки события нажатия кнопки cmdRedt

Private Sub cmdRed_Click()

'изменение цвета фона надписи lblMessage на цвет фона кнопки cmdRed

lblMessage.BackColor = cmdRed.BackColor

End Sub

'процедура обработки события щелчка на флажке chkBold

Private Sub cmdRed_Click()

'изменение начертания надписи lblMessage

lblMessage.FontBold = chkBold

End Sub

'процедура обработки события изменения размеров формы

Private Sub Form_Resize()

'перемещение надписи lblMessage на равное расстояние от правого и левого края формы

lblMessage.Left = (Me.Width - lblMessage.Width) / 2

End Sub

'процедура обработки события изменения значения полосы прокрутки

Private Sub hsb_Cange()

'перемещение надписи lblMessage по горизонтали

lblMessage.Left = hsb

End Sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: