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

3

是否有可能在不访问控件的情况下通过“错误提供程序”枚举所有当前显示的错误?

4个回答

4
你可以通过枚举其父控件的Controls集合并在每个控件上调用GetError来获取ErrorProvider中的所有错误。虽然不高效,但它能够工作。
foreach (Control ctrl in errProv.ContainerControl.Controls)
{
    Console.WriteLine(errProv.GetError(ctrl));
}

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

2

对于任何在Google等搜索引擎中找到此内容的.NET WinForms人员...

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

但是,如果您的错误是从较低层冒出来的,则应该可以在某个地方访问它们的集合,正如发布者Charles Graham所指出的那样。


1

有一个摘要验证器,它会给出所有错误,但它相当丑陋,我不确定你是否可以在不显示在页面上的情况下使用它。从技术上讲,如果您按照“正确的方式”进行操作,所有错误处理都应该在中间层中处理,然后以这种方式传递到屏幕上,因此您已经可以访问收集或字典中的所有错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接