我有一个问题。我验证两个texbox。如果texbox未通过验证,则显示带有错误提供程序的错误消息。
情况 :
tbAzetId.Text =“string”;
tbHeslo.Text =空;
errorprovider在tbHeslo中显示错误消息,没关系。
然后我在tbHeslo中写了一些文本,单击按钮,但errorprovider仍然在tbHeslo中显示错误消息。哪里有问题?
代码在这里:
private bool IsAzetIdValid()
{
if (tbAzetId.Text!=String.Empty && Regex.IsMatch(tbAzetId.Text, "[^a-zA-Z0-9]"))
{
return true;
}
else
{
return false;
}
}
private bool IsHesloValid()
{
if (tbHeslo.Text !=String.Empty)
{
return true;
}
else
{
return false;
}
}
private void btnPrihlasenie_Click(object sender, EventArgs e)
{
errorProvider.Clear();
if (!IsAzetIdValid())
errorProvider.SetError(tbAzetId, @"Nezadali ste Azet ID");
else if (!IsHesloValid())
errorProvider.SetError(tbHeslo, @"Nezadali ste heslo");
else
Text = "OK";
}
最佳答案
清除错误后,您需要清除该特定控件的错误提供程序文本:
errorProvider.SetError(tbAzetId, "");
if (!IsAzetIdValid())
errorProvider.SetError(tbAzetId, @"Nezadali ste Azet ID");
errorProvider.SetError(tbHelso, "");
if (!IsHesloValid())
errorProvider.SetError(tbHeslo, @"Nezadali ste heslo");;
ErrorProvider.Clear是不够的:
关于c# - ErrorProvider.Clear()问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3858888/