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控件应该由此支持。