表格上的三个面板布局

Ban*_*zai 8 c# visual-studio-2010 winforms

http://i.stack.imgur.com/SewpO.png 我正在尝试构建一个表单布局,它将满足以下要求:

  • panel1是固定高度 - 它只包含一个标签,它将是某种带标题的标题等
  • panel2将包含带有dockstyle fill的datagridview,此处用户将找到可以选择显示其属性的对象
  • panel3是固定高度 - 它将位于窗体的底部,并将包含datagridview中所选对象的属性

我的问题是让panel2填充在panel1和panel3之后留下的整个地方.因此,如果panel1和panel3都具有固定高度100,并且窗体具有高度500,那么panel2应该具有300高度,如果窗体将被调整为600,则panel2也应该调整为400等.

我正在尝试一些底座组合,尝试将panel1 dock设置为top,panel3设置为bottom,panel2设置为fill,但它提供的结果超出预期.我知道我可以处理表单resize事件并将panel2调整为一个大小,但是我想知道是否有一些更有弹性和干净的方法来做到这一点.

Tom*_*ala 6

停靠空间与表单上对象的顺序相关,如im_a_noob所述.您可以更改对象z顺序以更改它们停靠的方式.您应该能够右键单击需要填充中间空间的面板,然后从菜单中选择"置于前面".这应该使它正确地填充空间和整个形式在其他面板后面.

因此,您可以将顶部面板对接到顶部,底部面板到底部,然后将中间一个对接到"填充".然后右键单击并将中心位于前面.


Rém*_*émi 5

这是因为文档大纲。

View -> Other Windows -> Document Outline (or ctrl + w, u)
Run Code Online (Sandbox Code Playgroud)

确保您的码头填充面板(中间一个)是该列表中 3 个面板中的第一个。这应该可以解决您的问题。