Для операторов неудобно, если они что-то набрали и хотят это исправить, но не могут, потому что в них есть неправильная точка или точка с запятой.
Предположим, что оператор пытался набрать 14:38:21
, но вместо этого набирает:
14.38
"О нет, это неправильно, я хотел 14.38: 21! Итак, давайте сначалапродолжайте печатать :21
и затем вернитесь, чтобы изменить точку на двоеточие! "
Представьте себе разочарование оператора, когда он не может набрать :21
и не понимает, почему
В формах Windows проверять введенный ввод только тогда, когда оператор выражает, что он закончил редактирование ввода.
Поэтому используйте TextBox.OnValidating
.Когда он вызывается, вы можете либо принять, либо отклонить ввод и сообщить оператору, что не так.
protected override void OnValidating (CancelEventArgs e)
{
e.Cancel = this.IsInputErrorDetected;
if (e.Cancel)
{
this.DisplayInputProblem();
}
}
Бонус: также работает с copy-paste.