枚举错误提供程序中的错误

时间:2008-10-01 06:30:08

标签: .net error-handling errorprovider

是否可以枚举通过“错误提供程序”显示的所有当前错误,而无需访问控件?

4 个答案:

答案 0 :(得分:4)

您可以通过枚举其父级的Controls集合并在每个上调用GetError来从ErrorProvider获取所有错误。效率不高但有效。

foreach (Control ctrl in errProv.ContainerControl.Controls)
{
    Console.WriteLine(errProv.GetError(ctrl));
}

答案 1 :(得分:2)

对于在Google等中找到此内容的任何.net WinForms用户...

在WinForms中,至少枚举通过“Error Provider”类显示的所有当前错误而不访问所有控件是不可能的,WinForms中甚至没有摘要验证器。

然而,如果你的错误从较低的层冒出来,那么无论如何你应该可以访问它们的某个集合,正如Charles Graham所说的那样。

答案 2 :(得分:2)

在WinForms中,如果您的应用程序非常简单,不能有任何明确定义的“图层”,那么您可以将ErrorProvider包装在一个记录和公开所有当前错误的类中。或者,如果应用程序非常简单,请创建一个帮助方法来记录/删除错误并更新ErrorProvider。

答案 3 :(得分:1)

有一个摘要验证器会给你所有的错误,但是它非常难看,我不确定你是否可以在不在页面上显示它的情况下使用它。从技术上讲,如果你正在以“正确的方式”做事,那么所有的错误处理都应该在你的midddle teir中处理,然后以这种方式冒泡到屏幕上,这样你就可以访问集合或字典中的所有错误。 / p>