Последовательность событий фокуса для элементов управления в формах
При установке фокуса на элемент управления щелчком мыши, при нажатии клавиши
<Таb>
или при открытии формы происходят события:
Вход
(Enter) =>
Получение фокуса
(GotFocus).
Когда элемент теряет фокус, например при закрытии формы или переносе фокуса на другой элемент управления той же формы, происходят события:
Выход
(Exit) =>
Потеря фокуса
(LostFocus).
При переносе фокуса в другую форму элемент первой формы теряет фокус, но не возникает события
Выход
(Exit). Соответственно, когда фокус переносится обратно, т. е. к элементу, который уже имел фокус, когда форма последний раз была активной, то не происходит события
Вход
(Enter), а только событие
Получение фокуса
(GotFocus).
Замечание
В дальнейшем при описании последовательностей событий мы не будем приводить английские эквиваленты названий событий, дабы не загромождать представление. Кроме того, вводятся сокращения для обозначения объектов, к которым относится событие, например: э — элемент, ф — форма.
При переносе фокуса из элемента управления в главной форме на элемент управления в подчиненной форме события происходят в следующем порядке:
Выход
(г.ф., т.ф.)
=>
Потеря фокуса
(г.ф., т.ф.)
=> Вход
(г.ф., э.п.)
=> Выход
(п.ф., т.ф.)
=> Потеря фокуса
(п.ф., т.ф.)
=>
Вход "(п.ф., п.ф.) =>
Получение фокуса
(п.ф., п.ф.) Это самая сложная цепочка событий, в которой задействованы сразу четыре элемента управления: г.ф., т.ф. — элемент главной формы, теряющий фокус; г.ф., э.п. — элемент главной формы, содержащий подформу; п.ф., т.ф. — элемент подформы, теряющий фокус (если мы переносим фокус на тот элемент подформы, который до этого фокуса не имел); п.ф., п.ф. — элемент подформы, принимающий фокус. Если перенос фокуса выполняется на элемент подчиненной формы, который имел фокус, когда она последний раз была активной, то в цепочке отсутствуют события:
Выход
(п.ф., т.ф.)
=> Потеря фокуса
(п.ф.,
т.ф.) => Вход
(п.ф., п.ф.).