C# 正在动态验证用户条目,导致一些复杂问题

C# 正在动态验证用户条目,导致一些复杂问题,c#,.net,textbox,validation,C#,.net,Textbox,Validation,我想知道是否有比使用KeyDown事件更好的方法来验证文本框。原因是我的事件没有在应该的时候做出反应。例如,在下面的代码中,check工作得非常完美。我可以开始输入字符,在输入6个或更多字符之前,我必须输入至少6个字符。问题是,当我键入6个字符,然后删除一个,使其成为5个字符;它不显示错误。只有当我删除超过2个字符时,才会显示我的错误 我怎样才能避免这种情况,或者我还可以用什么来进行即时检查 public AuthenticationWindow() { InitializeCompon

我想知道是否有比使用KeyDown事件更好的方法来验证文本框。原因是我的事件没有在应该的时候做出反应。例如,在下面的代码中,check工作得非常完美。我可以开始输入字符,在输入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.";
}
公共身份验证窗口()
{
初始化组件();
//设置密码字符。
//我们试图隐藏用户正在键入的文本。
txtPassword.PasswordChar=char.Parse(“-”);
txtPassword.MaxLength=20;
txtUserName.MaxLength=20;
txtPassword.KeyDown+=KeyDownCheck;
}
受保护的void keydownscheck(对象发送方,KeyEventArgs e)
{
bool validPass=txtPassword.Text.Length<6;
if(有效通行证)
lblMessage.Text=“密码不能少于6个字符!”;
其他的
lblMessage.Text=“密码有效。”;
}
您应该改用事件

textBox1.TextChanged += new EventHandler(txtPassword_TextChanged);

private void txtPassword_TextChanged(object sender, EventArgs 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.";

}
textBox1.TextChanged+=neweventhandler(txtPassword\u TextChanged);
私有void txtPassword_TextChanged(对象发送方,事件参数e){
bool validPass=txtPassword.Text.Length<6;
if(有效通行证)
lblMessage.Text=“密码不能少于6个字符!”;
其他的
lblMessage.Text=“密码有效。”;
}

可能重复@V4Vendetta:这是另一个问题。我将解释我的问题。