2008-10-01 71 views

回答

1

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

2

对于任何.NET的WinForms人谁在谷歌等找到这个......

在WinForms的至少枚举通过一个“错误提供商”类显示当前所有的错误,而无需访问所有的控制是不可能的,在WinForms中甚至没有一个总结验证器。

但是,如果您的错误冒泡从较低层,那么您应该可以在任何地方访问它们的集合,正如海报Charles Graham指出的那样。

2

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

4

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

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