Интересно, есть ли лучший способ проверки текстового поля, чем использование события KeyDown. Причина в том, что мое событие не реагирует, когда оно должно. Например, в следующем коде проверка работает отлично. Я могу начать вводить символы, и пока не будет введено 6 или более символов, мне будет показано, что я должен ввести не менее 6 символов. Проблема в том, что, когда я набираю 6 символов, а затем удаляю один, получается 5 символов; это не отображает ошибку. Только когда я удаляю более 2 символов, отображается моя ошибка.
Как мне избежать этого или что еще я мог бы использовать для проверки на лету?
public AuthenticationWindow()
{
InitializeComponent();
// Setting up a password character.
// We are trying to hide what text user is typing.
txtPassword.PasswordChar = char.Parse("-");
txtPassword.MaxLength = 20;
txtUserName.MaxLength = 20;
txtPassword.KeyDown += KeyDownCheck;
}
protected void KeyDownCheck(object sender, KeyEventArgs e)
{
bool validPass = txtPassword.Text.Length < 6;
if (validPass)
lblMessage.Text = "Password can not be shorter than 6 characters!";
else
lblMessage.Text = "Password is valid.";
}