【问题标题】:How to force a control to validate itself?如何强制控件验证自己?
【发布时间】:2009-11-18 16:06:53
【问题描述】:

我有一个带有一些控件和一个 ErrorProvider 的 winforms。控件的 Validating 事件用于验证数据并将错误报告给 ErrorProvider(如果有)。当用户在控件中输入错误信息并离开控件时,此功能非常有用。

但是,如果用户在未输入任何数据的情况下单击,则不会发生验证。当用户单击确定时,有什么方法可以强制验证所有控件?并且在某些验证失败的情况下,我如何知道并取消 OK 事件?

【问题讨论】:

    标签: .net winforms validation


    【解决方案1】:

    您可以使用Form.ValidateChildren 来强制验证表单上的所有控件,只要它们支持验证。请注意,任何将 CausesValidation 设置为 False 的控件都不会引发 Validating 事件,因此不会被 ValidateChildren 验证。

    【讨论】:

    • 验证单个 ComboBox 怎么样? Form.ValidateChildren 在带有大量导致验证的控件的表单上使用时会带来效率问题。
    【解决方案2】:

    您还可以使用任何祖先 ContainerControlValidateValidateChildren,其中 Validate 应该表现最佳。

    请注意,FormContainerControl

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 2020-07-21
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多