Winforms 找出导致ValidateChildren()失败的控件

Winforms 找出导致ValidateChildren()失败的控件,winforms,Winforms,当我调用myControl.ValidateChildren时,它返回false。我如何才能发现,哪些孩子没有通过验证 我第一次使用WinForms,遇到了一大堆凌乱的遗留代码。唯一的方法似乎是通过验证事件处理程序进行调试。请参阅Hans对该问题的评论。您无法从ValidateChildren处获得此信息,它会小心地避免解决最无效的问题。它只是在控件上触发验证事件,由您使用该事件向用户提供反馈。经常被跳过,因为这是一个冗长的代码,使代码更加混乱。您可以在中找到一个更好的ErrorProvider

当我调用myControl.ValidateChildren时,它返回false。我如何才能发现,哪些孩子没有通过验证


我第一次使用WinForms,遇到了一大堆凌乱的遗留代码。

唯一的方法似乎是通过验证事件处理程序进行调试。请参阅Hans对该问题的评论。

您无法从ValidateChildren处获得此信息,它会小心地避免解决最无效的问题。它只是在控件上触发验证事件,由您使用该事件向用户提供反馈。经常被跳过,因为这是一个冗长的代码,使代码更加混乱。您可以在中找到一个更好的ErrorProvider。@HansPassant:看起来不错,但我在这里使用的是遗留代码,我试图找出ValidateChildren在某些情况下失败的原因。您会先执行ErrorProvider,然后继续调试吗?不知道失败意味着什么,它通常只返回false。当其中一个验证事件处理程序由于不满意而将e.Cancel设置为true时发生。抱歉,我的意思是返回false,即哪个附加的处理程序将e.Cancel设置为true。我不清楚为什么不使用调试器。只要在验证事件处理程序上设置一个断点,它们的数量应该是有限的。