Иллюстрированный самоучитель по Access 2002

       

Последовательность событий в формах


При открытии формы происходит следующая цепочка событий:

Открытие => Загрузка => Изменение размера => Включение

=>

Текущая запись

=>

Вход => Получение фокуса

События

Вход

(Enter) и

Получение фокуса

(GetFocus) возникают для первого элемента в первой записи. Если форма не имеет видимых или доступных элементов управления, то последовательность событий несколько иная:

Открытие => Загрузка => Изменение размера => Включение => Получение фокуса => Текущая запись



В этом случае событие

Получение фокуса

(GetFocus) относится к форме. При закрытии формы последовательность событий следующая:

Выход => Потеря фокуса => Выгрузка => Отключение => Закрытие

То есть сначала теряет фокус последний элемент в форме, а затем выполняются события для формы. Если в форме не было видимых или доступных элементов, то последовательность другая:

Выгрузка => Потеря фокуса (ф) => Отключение => Закрытие

При переключении между двумя открытыми формами последовательность событий следующая:

Потеря фокуса (э1) => Отключение (ф!) => Включение

(ф2)

=> Вход

(э2) => Получение фокуса (э2)

Если из открытой формы открывают другую форму, то сначала в открываемой форме происходят события

Открытие

(Open),

Загрузка

(Load) и

Изменение размера

(Resize), и только после этого в первой форме произойдет событие

Отключение

(Deactivate):

Открытие

(ф2) =>

Загрузка

(ф2) =>

Изменение размера

(ф2) =>

Отключение (ф1) => Включение

(ф2)

=>

Текущая запись

(ф2)

Это дает возможность проконтролировать открытие второй формы. Кроме того, событие

Включение

(Activate) происходит каждый раз, когда форма получает фокус, а события

Открытие

(Open) и

Загрузка

(Load) не происходят, если форма уже открыта, даже если переход в эту форму выполняется с помощью макрокоманды ОткрытьФорму (OpenForm). Событие

Отключение

(Deactivate) для формы не происходит, если фокус переносится в диалоговое окно.


Если открываемая форма содержит подчиненные формы, то сначала загружаются подчиненные формы и осуществляются все события в них, которые обычно происходят при открытии формы, кроме события

Включение


(Activate) — оно не возникает. Затем загружается главная форма в обычном порядке и для нее выполняется событие

Включение


(Activate).

Аналогично при закрытии такой формы сначала выгружаются все подчиненные формы, но в них не возникает событие

Отключение


(Deactivate). События при этом происходят в следующем порядке:

События для элементов подчиненной формы, например

Выход


(Exit) и

Потеря фокуса


(LostFocus).

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

События для главной формы.

События для подчиненной формы.



Последовательность событий клавиатуры и мыши


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



Клавиша вниз => Нажатие клавиши => Клавиша вверх


При щелчке мышью на элементе управления формы, соответственно:

Кнопка вниз => Кнопка вверх => Нажатие кнопки


Об особенностях этих событий подробно говорилось выше при их описании, поэтому сейчас мы позволим себе не повторяться.


Содержание раздела