GetChildAtPoint仅返回禁用的控件?

Rit*_*ita 1 c# tooltip winforms

我正在使用以下示例在禁用按钮上方显示工具提示. 如何在禁用按钮上显示工具提示?

按钮位于面板内,我将MouseMove事件附加到面板,而不是表单本身.令人惊讶的是,如果启用该按钮,GetChildAtPoint将返回null!该按钮仅在禁用时返回.我已经检查了按钮的位置,它在启用和禁用时是相同的,并且它的父节点都是面板.

要清楚; 在所有控件上调用MouseMove事件,在其中有一个用法在GetChildAtPoint方法中.启用该按钮后,将调用MouseMove,GetChildAtPoint将返回null.禁用时,将调用MouseMove,GetChildAtPoint将返回该按钮.

我不明白为什么这段代码有效.非常感谢任何帮助,谢谢.

Ter*_*ver 5

你从WM_MOUSEMOVE调用GetChildAtPoint,它被发送到鼠标下的窗口.已禁用的控件不会收到WM_MOUSEMOVE,因此会将其发送给父级.启用控件自己获取消息,父节点不会获取它.