如何在WinForms中控制对接顺序

时间:2010-04-09 12:52:28

标签: c# winforms docking

正如标题所述,我正在寻找一种方法来控制物品停靠在我控制之上的顺序。

我玩过Windows窗体设计师,我似乎无法找到RightClick->Order->SendToFront正在做什么,因为那完全我想要发生什么。至于我可以发生的事情,当我将我的内容添加到我的控件中时,最新的内容始终位于顶部,我希望新的内容位于底部,最旧的内容位于顶部。

摘要:在WinForms(C#)中有一种简单的方法来控制事物停靠在控件两侧的顺序吗?

编辑: 我必须从后面的代码执行此操作,因为我添加了我的控件,我不能使用WinForm的设计器的任何功能,但我是什么试图做,模仿WinForms Designer SendToBackSendToFront功能

8 个答案:

答案 0 :(得分:127)

转到视图→其他窗口→文档大纲。

在该窗口中拖动控件,使对接按照您的喜好进行。

答案 1 :(得分:65)

使用以下方法:

myControl.SendToBack();
myControl.BringToFront();

答案 2 :(得分:11)

正如你所说,添加到控件集合中的最新控件是顶部控件。如果你需要在底部添加一个较新的控件,我建议创建一个控件列表,将控件添加到列表中,反转列表并将列表添加到控件集合中。

List<Control> controls = new List<Control();
controls.Add(new myFirstControl());
controls.Add(new mySecondControl());
controls.Reverse();
this.Controls.AddRange(controls.ToArray());

答案 3 :(得分:4)

控件有两种方法可以实现您的目标:BringToFrontSendToBack

答案 4 :(得分:4)

控件添加到Controls集合的顺序决定了停靠顺序。

答案 5 :(得分:2)

(为了显示另一种选择): 在Visual Studio 2012(及更高版本)中:

  1. 选择您要移动到前面(或后面)的控件;
  2. 点击下面标有的按钮(Bring to Front / Send to Back); enter image description here
  3. 这样您就可以将控件重新排列为所需的顺序。

答案 6 :(得分:1)

请注意,以编程方式执行此操作时,有一种非常简单的方法可以实现此目的,即:

echo $conexionbd;

答案 7 :(得分:-3)

使用FlowLayoutPanel它完全符合你的要求。