错误提供程序未成功验证

时间:2011-08-25 19:00:08

标签: 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");
        e.Cancel = true;
    }
    else
    {
        errorProvider1.SetError(txtMain, String.Empty);
        e.Cancel = false;
    }
}

现在当我的文本框具有空值并按我的选项卡时,errorprovider会弹出并正常工作,甚至焦点也不会丢失。但是现在当我更正我的值并按Tab键时,此时焦点会丢失,但错误提供程序仍然只在那里。

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

1 个答案:

答案 0 :(得分:1)

您应该清除Validate事件处理程序中的错误。

请参阅此处(MSDN)的示例和说明,有关于焦点的特殊警告...

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating.aspx