【发布时间】:2012-03-14 10:38:14
【问题描述】:
我在 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, "");
}
【问题讨论】:
-
同时使用 txtEndhour 和 lblEnd 一定是错误的。这段代码在哪里处理两个不同的控件?
-
@HansPassant - 如果您的意思是我不应该验证一个控件只是为了在另一个控件上显示验证器,那不是真的,我让它在多个地方工作。我这里有一个愚蠢的逻辑错误。
标签: c# .net winforms error-handling