C# 最上面的窗口-仅当有;“更高”;Z命令窗口?

C# 最上面的窗口-仅当有;“更高”;Z命令窗口?,c#,winforms,C#,Winforms,我希望我的表单始终位于最上面(它位于鼠标光标之后),甚至在IE中的URL窗口之上。当我将Topmost=true或BringToFront()添加到OnPaint方法时,这一点就起作用了。 但是,除了单击主窗体中的按钮外,一切都正常(应用程序由选项窗体1和鼠标后的透明窗体2组成)。如果form2始终设置为最顶端,则不会注册对form1的单击。 我没有找到任何解决方法,例如,如果有一个控件具有更高的Z坐标,请将其设置为最上面? 希望它有意义,谢谢 您可以使用SendMessage将鼠标单击传递到下

我希望我的表单始终位于最上面(它位于鼠标光标之后),甚至在IE中的URL窗口之上。当我将Topmost=true或BringToFront()添加到OnPaint方法时,这一点就起作用了。 但是,除了单击主窗体中的按钮外,一切都正常(应用程序由选项窗体1和鼠标后的透明窗体2组成)。如果form2始终设置为最顶端,则不会注册对form1的单击。 我没有找到任何解决方法,例如,如果有一个控件具有更高的Z坐标,请将其设置为最上面?
希望它有意义,谢谢

您可以使用SendMessage将鼠标单击传递到下面的表单。见:


(滚动到底部查看答案)。

“如果两个程序都这样做了该怎么办?”@Johannes:我认为让一个程序这样做已经够糟糕的了。我需要鼠标高亮显示程序来帮助我的亲戚。实际上,它是有效的,鼠标光标周围有一个红色圆圈,但最上面的圆圈并不总是有效(比如当你在IE中打开URL列表时)。