如何强制控件进行验证?

7
我有一个WinForms窗体,其中包含一些控件和一个ErrorProvider。控件的Validating事件用于验证数据,并在有错误时向ErrorProvider报告错误。当用户输入错误信息并离开控件时,这个功能运作得很好。
然而,如果用户单击“确定”按钮而没有输入任何数据,则不会进行验证。是否有办法在用户单击“确定”按钮时强制验证所有控件?如果某些验证失败,我该如何知道并取消“确定”事件呢?
2个回答

15

您可以使用 Form.ValidateChildren 来强制验证表单上所有支持验证的控件。请注意,任何 CausesValidation 设置为 False 的控件都不会触发 Validating 事件,因此 ValidateChildren 不会对其进行验证。


17
对于验证单个下拉框,可以使用Form.ValidateChildren造成效率问题,特别是在有大量需要验证的控件的表单中。 - Rob

3
你还可以使用任何祖先 ContainerControlValidateValidateChildren 方法,其中 Validate 执行效果最佳。
请注意,Form 是一个 ContainerControl

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