В моем приложении я хотел бы обрабатывать ввод TextBox
в определенных случаях (например, некоторые критерии не заполняются), и поскольку KeyDown
полезен только для ввода с клавиатуры, но не для фактической вставки из буфера обмена (я бы не хотел проходить через В любом случае проблема с тем, чтобы сделать это с помощью вызовов Win32), я решил, что просто обработаю все в моем основном событии TextBox TextChanged
. Однако, когда что-то «не так» и пользователь не может вводить это, если я вызываю TextBox.Clear();
, TextChanged срабатывает второй раз, что вполне понятно, поэтому сообщение также отображается два раза. Это немного раздражает. В любом случае, я могу обрабатывать TextChanged только в этом случае? Пример кода (внутри txtMyText_TextChanged
):
if (txtMyOtherText.Text == string.Empty)
{
MessageBox.Show("The other text field should not be empty.");
txtMyText.Clear(); // This fires the TextChanged event a second time, which I don't want.
return;
}