【问题标题】:CausesValidation hierarchy with buttons inside a control控件内带有按钮的 CausesValidation 层次结构
【发布时间】:2013-01-09 20:45:13
【问题描述】:

我会看看我是否可以很好地解释这一点,以便有人回答或让我走上正确的道路。

这里是:

我已经构建了几个自定义控件;表单、文本框、复选框等。其中一个控件是导航栏,其中包含以下按钮:顶部、下一个、查找、添加、删除等。

在我的表单上是导航栏和其他几个自定义文本框、复选框、组合框等。这些控件中的每一个在 OnValidating 方法中都有自定义代码。

导航按钮容器的CausesValidation 属性似乎优先于栏中按钮的CausesValidation 属性。

所以我真正想要做的是关闭容器的CausesValidation 并让表单上的控件尊重每个按钮的CausesValidation 属性值。

当我构建导航栏时,它的基类是UserControl。我已经尝试了大多数容器控件,我得到了类似的行为。

所以我不确定我是否应该为每个控件选择不同的方法(OnValidating 除外),或者是否有其他方法可以在容器 CasuesValidation = FalseCausesValidation 开启时进行验证button = true

【问题讨论】:

    标签: c# winforms validation


    【解决方案1】:

    我解决了这个问题。

    事实证明 Checkbox OnValidating 正在触发,无论它是否有焦点。我不知道为什么,也找不到任何理由。我删除了 OnValidating 方法中的代码并将其放在 OnClickCheckChanged 中,这解决了我的问题。

    然后我能够将Navigation BarContainerCausesValidation 属性更改回false

    【讨论】:

      猜你喜欢
      • 2017-05-03
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      相关资源
      最近更新 更多