我想使用错误提供程序验证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并且表单通过。
答案 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;
}
如果我误解了某些内容,请告诉我。
希望它有所帮助。