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

有帮助吗?

解决方案

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

其他提示

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top