C# 在Winforms中,为什么在离开TextBox并输入DataGridView后不触发验证?

C# 在Winforms中,为什么在离开TextBox并输入DataGridView后不触发验证?,c#,winforms,datagridview,validating,C#,Winforms,Datagridview,Validating,我正在覆盖自定义Winforms文本框中的OnValidating事件。我发现如果文本框(绑定到一个对象)有焦点,然后我用鼠标给出一个网格焦点,OnValidating事件并不总是被触发。当我第一次给网格焦点时,它会被很好地激发。但是,如果将网格的一个单元格置于编辑状态(光标闪烁),从那时起,当我使用鼠标返回文本框和网格之间时,它似乎不会被触发。如果我使用tab键更改焦点,验证总是被触发。如果我使用鼠标将焦点交给非网格控件,验证总是被触发 我试图以一种简单的形式从头开始重新创建这个功能,但我无法

我正在覆盖自定义Winforms文本框中的OnValidating事件。我发现如果文本框(绑定到一个对象)有焦点,然后我用鼠标给出一个网格焦点,OnValidating事件并不总是被触发。当我第一次给网格焦点时,它会被很好地激发。但是,如果将网格的一个单元格置于编辑状态(光标闪烁),从那时起,当我使用鼠标返回文本框和网格之间时,它似乎不会被触发。如果我使用tab键更改焦点,验证总是被触发。如果我使用鼠标将焦点交给非网格控件,验证总是被触发


我试图以一种简单的形式从头开始重新创建这个功能,但我无法重新创建这个问题。我在遇到问题的设置中使用的网格是带有自定义列类型的自定义DataGridView。我想知道是不是电网出了问题。但是,我不知道它会如何影响文本框事件。有什么想法吗?

这可能与房产有关

如果焦点指向
CausesValidation
设置为false的控件,则控件的验证将被抑制。这只是一个猜测,但我认为网格中的某些控件具有
CausesValidation=false


此属性用于“取消”按钮之类的功能,但可能会造成很多混乱。

好的,我已通过删除除一列以外的所有列来简化网格,该列使用DataGridViewTextBoxedEdit控件。我还将其简化为只有一行/单元格。我已验证该列的编辑控件是否已将CausesValidation设置为true。有什么我遗漏的吗?一段代码片段将非常感谢。。。