我正在寻找一种方法来控制项目停靠在我的控件顶部的顺序。
我注意到当我将孩子添加到我的控件中时(在设计器中或通过代码),最新的孩子总是在顶部。我希望新的孩子排在底部,而年龄最大的孩子排在顶部。
有没有办法通过代码做到这一点?在 WinForms 设计器中,RightClick->Order->BringToFront
/SendToBack
正在做类似于我想做的事情,但是如何以编程方式完成呢?
转到查看 → 其他窗口 → 文档大纲。
在该窗口中拖动控件,使停靠成为您喜欢的样子。
使用这些方法:
myControl.SendToBack();
myControl.BringToFront();
正如您所说,添加到控件集合中的最新控件是顶部的控件。如果您需要在底部添加较新的控件,我建议创建控件列表,将控件添加到列表中,反转列表并将列表添加到控件集合中。
List<Control> controls = new List<Control();
controls.Add(new myFirstControl());
controls.Add(new mySecondControl());
controls.Reverse();
this.Controls.AddRange(controls.ToArray());
控件有两种方法来实现您要查找的内容:BringToFront
和SendToBack
.
控件添加到 Controls 集合的顺序决定了停靠顺序。
请注意,以编程方式执行此操作时,有一种非常简单的方法可以实现此目的,即:
containerPanel.Controls.SetChildIndex(Element, 0); //sends element to the bottom of the list
使用 FlowLayoutPanel 它完全符合您的要求。