WinForm UI组件层顺序

Moo*_*oon 20 c# components layer winforms

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

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

Myr*_*yra 31

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

当控制重叠时,它是确定哪个控件最终位于顶部的z索引.实际上,每个控件都存在于其自己的不同编号层中.具有z索引层1的控件将出现在z-index层中的控件上方2,如果它们重叠.通常,一组控件的z-index由添加控件的顺序决定,这样你添加的最后一个控件总是在最顶层(z-index为0) .

但是,您可以更改这些选项.

要确定或设置控件的z-index,可以使用Controls Collection的GetChildIndex()and和SetChildIndex()方法.这是一个将控件移动到z-index中第三层的示例.

Controls.SetChildIndex(ctrl, 2);
Run Code Online (Sandbox Code Playgroud)

通常,你不需要这种发现粒度的控制.相反,你只需要将控件放到z-index的背面(最底层)或将它带到顶部.你可以通过右键单击控件并选择Bring to Fron或Send to Back,您可以在设计时完成此功能.您还可以使用Control.BringToFront()Control.SendToBack()方法以编程方式执行相同的任务.

ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0);
Run Code Online (Sandbox Code Playgroud)


Fre*_*örk 28

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


Noa*_*Gal 12

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

  • View>OtherWindows>DocumentOutline 或使用快捷键 Ctrl+W、U (5认同)

Gis*_*shu 5

您是否尝试过使用Z-Order

另请参见:Control.SentToBack方法-大多数Winform控件应支持此功能。