Как обрабатывать полное изменение текстового поля в Windows Forms? - PullRequest
3 голосов
/ 21 сентября 2011

Какое событие я должен обработать, чтобы отреагировать на завершенное изменение TextBox (т.е. когда пользователь закончил редактирование содержимого TextBox)?

Ответы [ 2 ]

7 голосов
/ 21 сентября 2011

Существует несколько методов, которые вы можете использовать: Leave событие или ручное событие "остановка ввода".

Метод Leave является наиболее простым способом сделать это, хотя, как следует из названия события, это происходит только тогда, когда они TextBox теряют фокус, а не когда пользователь прекращает печатать.

Событие TypingStopped - это то, что вам нужно создать самостоятельно, но его основная идея - это короткий таймер (скажем, 500 мс, но вам нужно его протестировать), который вы перезапускаете при каждом KeyDown событии TextBox. Таймер будет запускать свое собственное событие и отключаться, если он достигнет конца своего тайм-аута.

Редактировать: Обновлено до Leave события согласно рекомендации Ганса.

3 голосов
/ 21 сентября 2011

Событие Leave, как правило, подходит для обработки пользовательского ввода (например, для проверки), когда они переходят в другую часть формы.Просто убедитесь, что событие запускается, если они переходят из текстового поля в любой другой элемент пользовательского интерфейса в вашей форме - вам может потребоваться сосредоточить внимание на новом элементе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...