C# Errorprovider未成功进行验证

C# Errorprovider未成功进行验证,c#,.net,c#-4.0,C#,.net,C# 4.0,我有一个不允许空值的文本框。所以我处理了textbox的验证事件 private void nullNotAllowed(object sender, System.ComponentModel.CancelEventArgs e) { TextBox txtMain = (TextBox)sender; if (txtMain.Text == "") { errorProvider1.SetError(txtMain, "error");

我有一个不允许空值的文本框。所以我处理了textbox的验证事件

private void nullNotAllowed(object sender, System.ComponentModel.CancelEventArgs e)
{
    TextBox txtMain = (TextBox)sender;
    if (txtMain.Text == "")
    {
        errorProvider1.SetError(txtMain, "error");
        e.Cancel = true;
    }
    else
    {
        errorProvider1.SetError(txtMain, String.Empty);
        e.Cancel = false;
    }
}
现在,当我的文本框有空值,我按tab键时,errorprovider弹出,工作正常,甚至焦点也没有丢失。但现在,当我更正我的值并按tab键时,这次焦点丢失,但错误提供程序仍然只保留在那个里


请记住,我的文本框位于面板中,面板位于tabControl中,tabControl位于表单中。

您应该清除验证事件处理程序中的错误

有关示例和注释,请参见此处(MSDN),这里有一个关于焦点的特别警告


您应该清除验证事件处理程序中的错误

有关示例和注释,请参见此处(MSDN),这里有一个关于焦点的特别警告