我有一个问题。我验证两个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/

10-11 01:51