当我们在 WinForms 中添加任何 UI 或容器时,后面添加的组件会覆盖前面添加的组件,可以说它处于更高层。
添加组件后如何更改该层顺序或组件顺序?
当我们在 WinForms 中添加任何 UI 或容器时,后面添加的组件会覆盖前面添加的组件,可以说它处于更高层。
添加组件后如何更改该层顺序或组件顺序?
当你在同一个地方放置多个控件时,一个会在上面,另一个会在下面。通常这是一个小错误的结果,例如错误地使用锚定和停靠功能来创建可调整大小的表单. 但是,在某些情况下,您可能希望重叠控制以获得特定效果。
当控件重叠时,由 z-index 决定哪个控件最终位于顶部。基本上,每个控件都存在于其自己不同的编号层中。具有 z-index 层 1 的控件将出现在 z-index 层中的控件上方2 如果它们重叠。通常,一组控件的 z-index 由您添加控件的顺序决定,因此您添加的最后一个控件始终位于最顶层(z-index 为 0) .
但是,您可以更改这些选项。
要确定或设置控件的 z-index ,可以使用Controls Collection 的GetChildIndex()
和SetChildIndex()
方法。这是一个将控件移动到 z-index 中的第三层的示例。
Controls.SetChildIndex(ctrl, 2);
通常,您不需要这种查找粒度的控件。相反,您只需要将控件放到 z-index 的后面(最底层)或将其带到顶部。您可以在设计时通过右键单击控件并选择“置于前部”或“置于后部”来完成此功能。您也可以使用Control.BringToFront()
或Control.SendToBack()
方法以编程方式执行相同的任务。
ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0);
是在代码中还是在设计器中动态加载组件时?如果它在设计器中,您可以使用Format -> Order -> Send to Back和Format -> Order -> Bring to Front命令。右键单击控件时,上下文菜单中以及在表单设计器中工作时应自动出现的“布局”工具栏中也可以使用“置于底层”和“置于顶层”。
在设计器视图中,您还可以打开“文档大纲”面板查看当前表单/控件的树形结构,然后左右拖动组件,“上”和“下”前后移动,还可以进出容器。
你试过玩Z-Order吗?
另请参阅:Control.SentToBack方法 - 大多数 Winform 控件应因此支持这一点。