是否可以枚举通过“错误提供程序”显示的所有当前错误,而无需访问控件?
答案 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>