在Windows窗体中进行验证的最佳方法是什么

时间:2010-12-08 21:28:57

标签: c# winforms validation

在Windows窗体应用程序中进行验证的最佳方法是什么?

最简单的方法是什么?

对最终用户最有吸引力的方式是什么?

此致

-Kushan -

2 个答案:

答案 0 :(得分:5)

关于UI验证,我有一组控制验证器,我只需通过分配控件就可以将它们插入我需要的位置。您可以使用ErrorProvider显示错误,您只需要封装的框架来自动化。

首先是ValidatorBase类。使其成为抽象并继承Component类,以便您可以获得设计时支持。在这里存储ErrorProvider的私有实例,并使用类似Template Method模式的东西(创建一个Validate方法,该方法又调用受保护的抽象DoValidation方法)。在基类的具体实现中,只需覆盖DoValidation并将逻辑放在此处。您可以使用EmptyValidator(检查控件的值是否为空),RegexValidator(使用某些reg。表达式检查控件值),GroupValidator(对某些列表中的每个ValidatorBase实例执行验证),无论您想要什么。

在基类中,您可以添加诸如属性的设计时支持(错误消息,图标,用于验证的控件等等)。

EDIT1:现在,关于UI中的其他验证,即业务层的域和您的规则。这些东西也有框架/模式,但我认为你在询问UI验证。

EDIT2:ASP.NET内置了一组类似的验证器,虽然具有更多功能(客户端验证等等),但说实话,我不太喜欢它们。

EDIT3:还检查: Is there any validation control available in .net win forms like asp.net web form?

答案 1 :(得分:1)

您可能会考虑查看的一个界面是IDataErrorInfo以及ErrorProvider类。我有一篇旧的博客文章,提供了可能有用的DataBinding类和接口列表:Data Binding Classes, Interfaces, and Attributes in Windows Forms 2.0