Dock-> Top控件的顺序问题

Boh*_*ohn 11 c# winforms

C#WinForms:我正在设计我的表单,我有几个TableLauots.所以我设计了我的第一个tablelayout,把它扔到面板上并设置Dock-> Top ...然后我设计我的第二个并做同样的设置Dock-> Top,它再次进入Top并且很好,它放在上一个在顶部...我设计了第三个并设置了它的dock.top并且它在第二个下面是第一个...但是我不知道当我设置时第四个的差异是什么它的dock.top,它改变了其他三个的顺序,并在它们之间的位置,它不会被置于第三个...任何想法我应该注意什么?

Akr*_*hda 28

这取决于您将这些控件添加到其容器的顺序.之前添加的控件将是顶级控件,依此类推......

为了解决它,"剪切"第四个控件并再次"粘贴"到容器中它将占据理想的位置.

解决此问题的另一种方法是修改设计器文件代码以重新排序将这些控件添加到其容器中.

  • 这真的是一个不好的方法."带前"和"回送"选项要好得多.有关详细信息,请尝试此链接.http://stackoverflow.com/questions/154543/panel-dock-fill-ignoring-other-panel-dock-setting (6认同)
  • "剪切粘贴"方法将破坏所有回调绑定! (4认同)
  • 或者更好的是,使用`Document Outline`窗口并在那里重新定位控件 (3认同)

Dav*_*haw 16

右键单击控件并选择"发送到后面"或"置于前面",或使用"文档大纲"窗口重新排列项目的Z顺序.在使用大量控件创建WinForms时,Document Outline有很大帮助.


Cri*_*spy 8

停靠布局基于它们添加到容器的顺序.

我通常转到*.Designer.cs文件并修改InitializeComponent()方法以手动重新排序控件添加到容器的方式.

this.Controls.Add(this.panel1);
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);
Run Code Online (Sandbox Code Playgroud)

此订单在显示屏上相反

  • “此顺序与显示相反”应为粗体。 (2认同)

Ped*_*iro 6

您必须在"文档大纲"窗口中组织控件的顺序(VIEW - >其他Windows - >文档大纲(Ctrl + W,U)).在设计模式下选择您的表单,您将在树视图中看到所有组件.使用顶部的箭头选择所需的顺序.

它比剪切和过去更好,因为它可以避免丢失绑定回调.