是否有可能让一个 control ( Panel
) 始终凌驾于所有其他控件之上,即使它们也使用Control.BringToFront()
?
我已经厌倦了使用BringToFront
它自己,但是如果这个控件下的另一个控件也使用这个命令,这似乎失去了它的有效性。
如果您尝试解释您要达到的目标,这将有所帮助。然后我们可能能够更好地说服你,你做错了什么:)
无论如何,无论你做什么技巧,其他控件可能会使用相同的技巧来覆盖你。
您可以领先一步,例如通过处理父控件的Layout
事件来强制您的控件回到前面。当子控件的 Z 顺序发生更改时,将触发该Layout
事件(除其他外)。
private void Form1_Layout(object sender, LayoutEventArgs e)
{
panel1.BringToFront();
}
处理这个问题的一个肮脏的方法是设置一个计时器,每次它滴答作响时使用控件上的 .BringToFront() 方法,您还可以添加多个您希望执行此操作的控件,并且可以按照您喜欢的方式排列它们。