0

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

我想像使用私有变量 bool _formValid

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 保持为真并且表单通过。

4

1 回答 1

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;
}

如果我误解了什么,请告诉我。

希望能帮助到你。

于 2013-07-31T07:01:19.913 回答