保持控制始终在最前面

时间:2013-04-16 09:26:51

标签: c# .net winforms z-order

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

我厌倦了使用BringToFront本身,但如果此控件下的另一个控件也使用此命令,那么这似乎会失效。

2 个答案:

答案 0 :(得分:5)

如果您试图解释您想要实现的目标,那将会有所帮助。那么我们可能会更好地说服你,你做错了什么:)

无论如何,无论你做什么伎俩,另一个控制都可以使用相同的技巧来覆盖你。

例如,您可以通过处理父控件的Layout事件来强制控制回到前面。当子控件的Z顺序发生变化时,Layout事件会被触发(等等)。

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

答案 1 :(得分:0)

处理这个问题的一个简单方法是设置一个计时器,每次它使用控件上的.BringToFront()方法时,你也可以添加你希望执行此操作的多个控件,并可以根据需要安排它们。 / p>