3

是否有可能让一个 control ( Panel) 始终凌驾于所有其他控件之上,即使它们也使用Control.BringToFront()?

我已经厌倦了使用BringToFront它自己,但是如果这个控件下的另一个控件也使用这个命令,这似乎失去了它的有效性。

4

2 回答 2

7

如果您尝试解释您要达到的目标,这将有所帮助。然后我们可能能够更好地说服你,你做错了什么:)

无论如何,无论你做什么技巧,其他控件可能会使用相同的技巧来覆盖你。

您可以领先一步,例如通过处理父控件的Layout事件来强制您的控件回到前面。当子控件的 Z 顺序发生更改时,将触发该Layout事件(除其他外)。

private void Form1_Layout(object sender, LayoutEventArgs e)
{
    panel1.BringToFront();
}
于 2013-04-16T11:09:16.963 回答
0

处理这个问题的一个肮脏的方法是设置一个计时器,每次它滴答作响时使用控件上的 .BringToFront() 方法,您还可以添加多个您希望执行此操作的控件,并且可以按照您喜欢的方式排列它们。

于 2017-04-12T11:49:32.377 回答