是否有可能在不访问控件的情况下通过“错误提供程序”枚举所有当前显示的错误?
foreach (Control ctrl in errProv.ContainerControl.Controls)
{
Console.WriteLine(errProv.GetError(ctrl));
}
对于任何在Google等搜索引擎中找到此内容的.NET WinForms人员...
至少在WinForms中,不可能通过访问所有控件而枚举显示的所有当前错误,即使使用“Error Provider”类也不行,甚至在WinForms中没有摘要验证器。
但是,如果您的错误是从较低层冒出来的,则应该可以在某个地方访问它们的集合,正如发布者Charles Graham所指出的那样。
有一个摘要验证器,它会给出所有错误,但它相当丑陋,我不确定你是否可以在不显示在页面上的情况下使用它。从技术上讲,如果您按照“正确的方式”进行操作,所有错误处理都应该在中间层中处理,然后以这种方式传递到屏幕上,因此您已经可以访问收集或字典中的所有错误。