使用错误提供程序验证并停止进一步执行

时间:2013-07-31 06:46:49

标签: c# .net winforms

我想使用错误提供程序验证winform。当用户单击按钮时,将执行多个Validated方法txtFieldOne_Validated(this, e); txtFieldTwo_Validated(this, e);,如果任何此验证器失败并使用错误提供程序显示错误,我需要解决方案以进一步停止执行。

我想使用私有变量bool _formValid like

private btnValidateFields_Click(object sender, EventArgs e)
{
   txtFieldOne_Validated(this, e); 
   txtFieldTwo_Validated(this, e);  
   if(_formValid)
   {continue...}
}

private void txtFieldOne_Validated(object sender, EventArgs e)
{
    if(....)
        errorProvider1.SetError(txtFieldOne, "some error message")
       _formValid = true;
    else(....)
       errorProvider1.SetError(txtFieldOne, "")
       formValid = false;
}

但是如果上次检查的字段为真,则使用此方法,而填充的_formValid仍然为true并且表单通过。

1 个答案:

答案 0 :(得分:1)

我不清楚你要做什么。但根据你的意见,我会建议这样的事情。没有必要为不同的控件调用不同的验证方法。所有控件都应以相同的方法验证。

void IsFormValid(this, e)
{
    bool result = ValidateAllControls();

    if(!result)
        return;

    // Rest of the execution
}

bool ValidateAllControls()
{
    if(!control1.IsValid)
        return false;
    if(!control2.IsValid)
        return false;
    if(!control3.IsValid)
        return false;

    return true;
}

如果我误解了某些内容,请告诉我。

希望它有所帮助。

相关问题