【发布时间】:2012-10-15 00:20:27
【问题描述】:
Show/Hide 和 BringToFront/SendToBack 有什么区别?在什么情况下我们应该使用一对而不是另一对?
【问题讨论】:
标签: c# winforms user-interface controls show
Show/Hide 和 BringToFront/SendToBack 有什么区别?在什么情况下我们应该使用一对而不是另一对?
【问题讨论】:
标签: c# winforms user-interface controls show
Show() 等效于设置Visible = true。它不会更改控件的 Z 顺序。如果控件被 Z-order 前面的某个其他控件关闭,用户仍然无法看到您的控件。
BringToFront() 更改控件的 Z 顺序(置于前面),但不更改其可见性。如果控件被隐藏,那么它将保持隐藏状态。但是,当您使控件可见时,它将出现在所有其他控件的前面。
与Hide()(使控件不可见,但不更改 Z 顺序)和 SendToBack(不更改可见性,但将控件返回)相同。
【讨论】:
这些是完全不同的方法。
Show() : 在视图上显示控件,通过之前初始化它的内容。
BringToFront 和 SendToBack 作用于 Z-order 对他人的控制。
但是控件已经可见。
来自 MSDN 在BringToFront 上的提示:
将控件置于 z 顺序的前面。
在Show:
向用户显示控件。
【讨论】:
显示/隐藏将在屏幕上显示或隐藏控件。基本上它使它可见或不可见。
BringToFront/SendToBack 将更改其“z”顺序。如果您在标签下有一个按钮,并且您在该按钮上调用“BringToFront”,则该按钮现在将隐藏标签。
【讨论】:
BringToFront 只是将一个控件移动到其他控件的前面(换句话说,它将覆盖另一个控件),SendToBack 将允许其他控件将其覆盖,而 Show/Hide 实际上将完全显示/完全隐藏该控件用户。
作为一般规则,您希望显示/隐藏控件
【讨论】: