我会看看我是否能够很好地解释这个问题,以便有人回答或者让我走上正确的道路。
这里是:
我已经构建了几个自定义控件;表单,文本框,复选框等。其中一个控件是导航栏,其中包含以下按钮:顶部,下一个,查找,添加,删除等。
在我的表单上是导航栏和其他几个自定义文本框,复选框,组合框等。每个控件都有OnValidating
方法中的自定义代码。
导航按钮的容器的CausesValidation
属性似乎优先于栏内按钮的CausesValidation
属性。
所以我真正想做的是关闭容器的CausesValidation
并让表单上的控件尊重每个按钮的CausesValidation
属性的值。< / p>
当我构建导航栏时,其基类为UserControl
。我已经尝试了大多数容器控件,并且我得到了类似的行为。
所以我不确定是否应该为每个控件选择一个不同的方法(OnValidating
除外),或者是否有其他方法可以在容器CasuesValidation = False
时进行验证,但是CausesValidation
button = true
答案 0 :(得分:0)
我解决了这个问题。
事实证明 Checkbox
OnValidating
无论是否有焦点都会被解雇。我不知道为什么也找不到任何理由。我删除了OnValidating
方法中的代码,并将其放在OnClick
和CheckChanged
中,这解决了我的问题。
然后我可以将CausesValidation
的 Container
的Navigation Bar
属性更改回 false