我正在开发一个Popup控件,它将在悬停集成控件时显示为ToolTip,我已经实现了这一点。
我已使用 user32 dll 的 SetWindowPos 方法更改了窗口的位置,并且位置正在成功更改。
在更改工具提示窗口位置之前,通常会显示光标位置的BottomRight。
我的问题是,当我改变窗口的位置与默认窗口位置(BottomRight)的区域不相交时,它工作正常。 但是当我改变窗口的位置时,窗口的任何区域都在窗口的默认位置范围内相交。然后窗口闪烁,弹出窗口没有正确显示。
这是我用来改变光标位置底部中心窗口位置的代码部分。
PostApplicationStartMethod
使用上面的代码会将窗口区域的一半与默认窗口区域相交。
请有人建议我,为什么更改默认位置相交的位置会导致窗口闪烁和显示不正确。
编辑解决方法: 我注意到窗口过程反复被触发,为什么窗口闪烁。当我将窗口的Y位置改为 point.Y + = 1; 闪烁问题已解决。
我认为弹出窗口中的光标位置会再次显示导致闪烁的窗口。谁能证实这种行为?如果没有,请纠正我。
此致,Amal Raj。