При достаточно простом подходе можно проверить текст, используя событие TextChanged
. Если текст верен, сохраните его копию в строковой переменной. Если оно недопустимо, покажите сообщение, а затем восстановите текст из переменной:
string _latestValidText = string.Empty;
private void TextBox_TextChanged(object sender, EventArgs e)
{
TextBox target = sender as TextBox;
if (ContainsNumber(target.Text))
{
// display alert and reset text
MessageBox.Show("The text may not contain any numbers.");
target.Text = _latestValidText;
}
else
{
_latestValidText = target.Text;
}
}
private static bool ContainsNumber(string input)
{
return Regex.IsMatch(input, @"\d+");
}
Это будет обрабатывать любое появление чисел в тексте, независимо от того, где и сколько раз они могут появляться.