control.Show和BringToFront有什么区别?

时间:2012-10-24 21:28:04

标签: c# winforms user-interface controls show

显示/隐藏和BringToFront / SendToBack有什么区别?在哪种情况下我们应该使用一对而不是另一对?

4 个答案:

答案 0 :(得分:7)

Show()与设置Visible = true相同。它不会改变控制的Z顺序。如果控制由Z顺序前面的某个其他控件关闭,用户仍然无法看到您的控件。

BringToFront()更改了对照的Z顺序(带到前面),但不会改变它的可见性。如果隐藏了控件,那么它将保持隐藏状态。但是,当您使控件可见时,它将显示在所有其他控件的前面。

Hide()相同(使控件不可见,但不会更改Z顺序)和SendToBack(不会更改可见性,但会将控制权返回)。

enter image description here

enter image description here

答案 1 :(得分:2)

这些是完全不同的方法。

Show():通过在之前初始化视图内容来显示视图上的控件。

BringToFrontSendToBack对其他人的Z-order采取行动。 但控制已经可见。

BringToFront上来自MSDN的提示:

  

将控件置于z顺序的前面。

Show

  

向用户显示控件。

答案 2 :(得分:1)

显示/隐藏将在屏幕上显示或隐藏控件。基本上它使它可见或不可见。

BringToFront / SendToBack将更改其“z”顺序。如果标签下方有一个按钮,并且您在按钮上调用“BringToFront”,则该按钮现在将隐藏标签。

答案 3 :(得分:0)

BringToFront只是在其他控件前移动一个控件(换句话说,它将覆盖另一个控件),SendToBack将允许其他控件覆盖它,而Show / Hide实际上将完全显示/完全隐藏控件用户。

作为一般规则,您要显示/隐藏控件