control.Show和BringToFront有什么区别?

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

这些是完全不同的方法。

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

BringToFrontSendToBack就该控件的Z-order其他操作。 但控制已经可见。

来自MSDN的BringToFront的提示:

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

并在显示 :

向用户显示控件。

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

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

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

在此处输入图像描述

在此处输入图像描述

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

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

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

通常,您希望显示/隐藏控件