我在winforms项目中使用了ErrorProvider控件。它的工作大部分(虽然使用起来有点痛苦)。
现在我有2个控件可以激活相同的验证器。在验证器中,我查看每个控件,如果错误则设置错误。一个呼叫有效,但另一个呼叫无效。怎么会这样?没有例外。
代码:
if (endHour > 12)
{
if (endHour >= 24)
{
//Fails without error
errorProvider1.SetError(lblEnd, "You cannot enter more than 24 hours in a day");
}
else
{
txtEndHour.ForeColor = Color.Blue;
}
}
else
{
errorProvider1.SetError(lblEnd, "");
}
if (endMin >= 60)
{
//Always works.
errorProvider1.SetError(lblEnd, "You can't enter more than 60 minutes in an hour.");
}
else
{
errorProvider1.SetError(lblEnd, "");
}
答案 0 :(得分:1)
如果您使用endHour> = 24调用此代码,但endMin< 60你将永远落到最后的其他清除errorProvider的地方。
您应该将两个验证(更好)分开,或者在发现小时部分无效时进行回复。