始终将控件置于顶层

3

是否有可能将一个控件(Panel)始终保持在其他所有控件的上方,即使它们也使用了Control.BringToFront()

我试图使用BringToFront本身,但是如果该控件下面的另一个控件也使用了这个命令,则似乎会失效。


7
奇怪,你的程序中有如此混乱的控制。 - Hans Passant
2个回答

7

如果你能解释一下你想要实现什么,那会很有帮助。这样我们可能更能说服你,你正在做一些非常错误的事情 :)

无论如何,不管你采取什么技巧,其他控件都可能使用相同的技巧覆盖你。

例如,你可以通过处理父控件的Layout事件来使你的控件在前面。当子控件的 Z 顺序发生变化时,Layout事件就会被触发。

private void Form1_Layout(object sender, LayoutEventArgs e)
{
    panel1.BringToFront();
}

0
一种解决方法是设置一个计时器,每次计时结束时使用 .BringToFront() 方法来使控件处于前台。您还可以添加多个需要执行此操作的控件,并按照您喜欢的方式进行排列。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接