Подтвердить что ты не робот

Разница между событием LostFocus и выходом из события TextBox

В чем разница между событиями LostFocus и Leave TextBox?

4b9b3361

Ответ 1

Проверьте раздел заметок по этим ссылкам:

Согласно MSDN, есть разница при изменении фокуса элемента управления. Событие Leave происходит до проверки, а LostFocus происходит после проверки.


ОБНОВЛЕНИЕ: 14 февраля 2019

Я вижу, что я все еще получаю мнения и отклики на ответ, который я опубликовал пару лет назад. Теперь стало необходимым, чтобы я включил (довольно важную) цитату из ссылок MSDN выше, чтобы избежать путаницы среди новых программистов (обратите внимание на разницу порядка, особенно в случае фокусировки с помощью мыши или вызова метода Focus):

Когда вы изменяете фокус с помощью клавиатуры (TAB, SHIFT + TAB и т.д.), Вызывая методы Select или SelectNextControl или устанавливая свойство ContainerControl.ActiveControl в текущую форму, события фокуса происходят в следующем порядке:

Enter

GotFocus

Leave              <--- before validation

Validating      --
                  |<--- validation
Validated       --

LostFocus          <--- after validation

Когда вы изменяете фокус с помощью мыши или вызываете метод Focus, события фокусировки происходят в следующем порядке:

Enter

GotFocus

LostFocus          <--- before validation

Leave              <--- before validation

Validating      --
                  |<--- validation
Validated       --

NB: акцент на тексте и индикаторах в добавленной мной цитате

Ответ 3

Событие

Leave() означает, что сначала выполняется событие клавиатуры, а затем выполняется событие мыши, где событие Lost() означает, что сначала выполняется событие мыши, а затем выполняется событие клавиатуры.