При открытии формы происходит следующая цепочка событий:
Открытие => Загрузка => Изменение размера => Включение
=>
Текущая запись
=>
Вход => Получение фокуса
События
Вход
(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). События при этом происходят в следующем порядке: