Нет события, которое бы удовлетворяло вашему требованию быть вызванным, когда значение текстового поля изменяется программно с помощью кода, но не , когда текст вводится пользователем. Событие TextChanged
будет вызываться в любом случае (это довольно интуитивно понятно - текстовое значение меняется, и компьютер не знает или не заботится , что отвечает за его изменение). Как указывает документация для этого события:
Пользовательский ввод или установка свойства Text
на новое значение вызывает событие TextChanged
.
Если вам нужно запускать пользовательскую логику проверки при добавлении текста в текстовое поле в коде, вам нужно будет самостоятельно вызывать любой метод, содержащий логику проверки. Извлеките его в отдельный метод, который вызывается из обработчика событий Validating
/ Validated
и из всех мест в вашем коде, где вы устанавливаете свойство Text
текстового поля.
В дополнение к другим ответам, которые уже были опубликованы, я настоятельно рекомендую использовать Validating
(если вы хотите отменить проверку) или Validated
события для обработки текста, теряющего фокус, а не несколько более явно названное LostFocus
событие.