Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控件中带有按钮的CausesValidation层次结构_C#_Winforms_Validation - Fatal编程技术网

C# 控件中带有按钮的CausesValidation层次结构

C# 控件中带有按钮的CausesValidation层次结构,c#,winforms,validation,C#,Winforms,Validation,我会看看我是否能很好地解释这一点,以便有人回答或让我走上正确的道路 下面是: 我已经建立了几个自定义控件;表单、文本框、复选框等。其中一个控件是一个导航栏,其中包含诸如:Top、Next、Find、Add、Delete等按钮 在我的表单上有导航栏和其他几个自定义文本框、复选框、组合框等。这些控件中的每个控件都有OnValidating方法中的自定义代码 导航按钮容器的CausesValidation属性似乎优先于栏中按钮的CausesValidation属性 因此,我真正想做的是关闭容器的Cau

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

下面是:

我已经建立了几个自定义控件;表单、文本框、复选框等。其中一个控件是一个导航栏,其中包含诸如:Top、Next、Find、Add、Delete等按钮

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

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

因此,我真正想做的是关闭容器的
CausesValidation
,并在表单上设置控件,无论每个按钮的
CausesValidation
属性值是多少

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


因此,我不确定是否应该为每个控件选择不同的方法(除了验证时的
方法),或者当容器
casuesvalization=False
时是否有其他方法来进行验证,但是
按钮上的
casuesvalization=true
我解决了问题

无论是否有焦点,验证时的
复选框
都会启动。我不知道为什么,也找不到任何理由。我在
OnValidating
方法中删除了代码,并将其放置在
OnClick
CheckChanged
中,从而解决了我的问题

然后,我能够将
导航栏的
容器的
CausesValidation
属性更改回
false