Show/Hide和BringToFront/SendToBack有什么区别?在什么情况下我们应该使用其中一对而不是另一对?
Show()
等同于将Visible = true
。它不会改变控件的 Z 顺序。如果控件被某个在 Z 顺序前面的其他控件关闭,用户仍然无法看到您的控件。
BringToFront()
更改控件的 Z 顺序(置于前端),但不更改其可见性。如果控件被隐藏,则仍将保持隐藏。但是,当您使控件可见时,它将出现在所有其他控件的前面。
Hide()
也是同样的道理(使控件不可见,但不更改 Z 顺序),而 SendToBack
则不更改可见性,但将控件置于后面。
这些是完全不同的方法。
Show()
:在初始化控件内容之前,将其显示在视图上。
BringToFront
和SendToBack
对该控件相对于其他控件的Z-order
进行操作。但是,控件已经可见。
来自MSDN关于BringToFront的提示:
将控件置于z-order的最前面。
以及Show的提示:
向用户显示控件。
显示/隐藏将在屏幕上显示或隐藏控件。基本上使其可见或不可见。
BringToFront / SendToBack将更改其“z”顺序。如果您在标签下面使用按钮,并在按钮上调用“BringToFront”,则按钮现在将隐藏标签。
BringToFront 简单地将控件移动到其他控件的前面(换句话说,它将覆盖另一个控件),而 SendToBack 将允许其他控件覆盖它,而 Show/Hide 实际上会完全显示/完全隐藏控件。
通常情况下,您希望显示/隐藏控件。