WinForm UI组件层顺序

当我们在WinForms中添加任何UI或容器时,后面添加的组件来自早期添加的组件,我们可以说它位于更高层。

如何在添加组件后更改图层顺序或组件顺序?

是在代码中还是在设计器中动态加载组件时? 如果它在设计器中,您可以使用格式 – >顺序 – >发送到后面格式 – >顺序 – >置于前面命令。 右键单击控件时,在上下文菜单中也可以使用“ 发送到后面”“置于前面” ,以及在表单设计器中工作时应自动显示的“布局”工具栏中。

当你在同一个地方放置一个以上的控件时,一个将最终位于顶部,另一个将最终位于下方。通常这是一个小错误的结果,例如错误地使用锚定和停靠function来修改可resize的forms但是,在某些情况下,您可能希望重叠控件以获得特定效果。

当控制重叠时,它是确定哪个控件最终位于顶部的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的背面(最底层)或将它带到顶部。你可以通过右键单击控件并选择Bring to Fron或Send to Back,您可以在设计时完成此function。您还可以使用Control.BringToFront()Control.SendToBack()方法以编程方式执行相同的任务。

 ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0); 

在设计器视图中,您还可以打开“文档大纲”面板以查看当前表单/控件的树结构,然后拖动组件,“向上”和“向下”以前后移动,以及进出集装箱。

你尝试过使用Z-Order吗?

另请参见: Control.SentToBack方法 – 大多数Winform控件应该由此支持。