当条件为假时,如何使验证指示消失

时间:2018-02-08 13:54:53

标签: c# winforms

我有一种方法来验证Textbox

private void TextBox_Validation(object sender, CancelEventArgs e, TextBox txt, int requiredLength, string errorMessage)
{
    ErrorProvider er = new ErrorProvider();

    if (txt.Text.Length < requiredLength)
    {
        er.SetError(txt, errorMessage);
       e.Cancel = true;
    }
    else
    {
       er.SetError(txt, null);
       e.Cancel = false;
     }
 }

我从文本框验证事件

运行它
private void txtIssueDescription_Validating(object sender, CancelEventArgs e)
{
    TextBox_Validation(sender, e, txtIssueDescription, 20, "Desription must have at least 20 letters");
}

问题:即使消息长度大于20,红色指示仍然表示图像中显示的消息。当条件为真时,它就会完成它应该做的事情。

Image

1 个答案:

答案 0 :(得分:1)

您每次都在创建新的错误提供程序:

ErrorProvider er = new ErrorProvider();

对表单中存在的ErrorProvider组件不做任何更改。