C# 更改窗口位置时,工具提示窗口将闪烁

C# 更改窗口位置时,工具提示窗口将闪烁,c#,winforms,tooltip,interop,popupwindow,C#,Winforms,Tooltip,Interop,Popupwindow,我正在开发一个弹出控件,它将显示为工具提示,同时悬停集成控件,我已经实现了这一点 我已使用user32 dll的SetWindowPos方法更改了窗口的位置,并且位置正在成功更改 在更改工具提示窗口位置之前,它通常显示在光标位置的右下角 我的问题是,当我更改窗口的位置时,它与默认窗口位置(右下角)的区域不相交,工作正常但当我更改窗口的位置时,窗口的任何区域都会在窗口的默认位置范围内相交。然后窗口闪烁,弹出窗口显示不正确。 这是我用来改变窗口在光标位置底部中心位置的代码部分 point = Cur

我正在开发一个弹出控件,它将显示为工具提示,同时悬停集成控件,我已经实现了这一点

我已使用user32 dllSetWindowPos方法更改了窗口的位置,并且位置正在成功更改

在更改工具提示窗口位置之前,它通常显示在光标位置的右下角

我的问题是,当我更改窗口的位置时,它与默认窗口位置(右下角)的区域不相交,工作正常但当我更改窗口的位置时,窗口的任何区域都会在窗口的默认位置范围内相交。然后窗口闪烁,弹出窗口显示不正确。

这是我用来改变窗口在光标位置底部中心位置的代码部分

point = Cursor.Position;
point.X -= this.Size.Width / 2;
WindowsAPI.SetWindowPos(this.Handle, IntPtr.Zero, point.X, point.Y, 0, 0, SWP_MOVE);
使用上述代码将使窗口区域的一半与默认窗口区域相交

请任何人建议我,为什么改变默认位置相交的位置会导致窗口闪烁和显示不正确

编辑解决方案: 我注意到窗口过程被反复触发,这就是为什么窗口会闪烁。当我通过点改变窗口的Y位置时,Y+=1闪烁问题已解决

我认为光标在弹出窗口中的位置会再次显示导致闪烁的窗口。有人能证实这种行为吗?如果没有,请纠正我

你好,阿马尔·拉吉