Вы можете прослушивать события TextChanged, как указывает Пома, и посмотреть, что находится в поле ввода. Затем у вас есть (в основном) два варианта:
- Исправить ввод в реальном времени (т. Е. Сбросить текст, чтобы не было ошибки
- Дайте визуальную обратную связь, чтобы указать, что что-то не так
Обычно я использую вариант 2, чтобы указать ошибку I:
- Отключить любые параметры ввода (например, кнопки ОК)
- Измените цвет фона текстового поля на светло-красный.
Будьте осторожны, если вы выберете вариант 1, потому что изменение текста программным способом также приведет к изменению текста. Одним из решений является установка логического флага, т. Е.
private bool changingText = false;
private void myTextBox_textChanged(...)
{
if(changingText)
return;
fixErrors();
}
private void fixErrors()
{
// Before changing myTextBox.Text, set the flag
changingText = true;
myTextBox.Text = ...
changingText = false;
}
Есть и другие варианты, это только самые распространенные.
Edit:
Другое, потенциально лучшее, решение заключается в обработке OnKeyDown для текстового поля, если ключ не тот, который вам нужен - просто установите для свойства Handled события значение true. В любом случае будет работать.
- Дан