使DataGridView伸展到WinForms表单的中间位置?

时间:2017-04-14 21:00:18

标签: c# winforms layout

我有一个WinForm表单,其上有两个DataGridView控件,它们堆叠在一起,一个在另一个上面,紧靠表单的右侧。

我想要一种设置它们的方法,这样当我展开表单时,它们会以高度方式扩展,以及宽度方式。我通过将它们固定在左侧和右侧并将顶部一个锚定到顶部而底部一个固定到底部来管理宽度。但是,从这里开始,我不知道如何让它们用尽当窗体最大化时出现的中间空间......也许图像会让我的意思更清晰:

正常尺寸: Normal size form

Maxmized;我希望网格扩展以占据其中两个之间的形式的全部高度,如红色箭头所示: Maximized form with annotation

如果这个问题非常明显,我道歉并且只能说我真的不知道如何正确地说出来,所以在Google上搜索它无益!

1 个答案:

答案 0 :(得分:2)

您有两种选择:

  • TableLayoutPanel
  • SplitContainer

前者允许您使用absolutepercentautosize的各种大小调整选项创建包含多个列和/或行的表格。这对布局非常有用;但在其他方面TLPs受到一定限制,因为' 虚拟 ..

SplitContainer仅提供两个窗格,但是您可以使用container所做的所有操作来处理每个窗格:添加一个或多个控件,锚定或停靠它们,为每个窗格提供BackColor并使用其事件模型。

因此,如果您只需要两个大小相同的控件来适应问题中显示的表单大小,那么SplitContainer可能是更好的选择。

将拆分器设置为固定并缩小,锚定 SplitContainer所有方,并将DGVs放入其窗格中{ {1}}他们到Dock

您还可以使分割器可移动以允许用户调整窗格的大小;如果这样做,确实会使分割器的宽度变大..

另外,请确保Fill设置为FixedPanel,以便共享身高变化。

提示:如果您想要多个窗格共享空间,可以嵌套多个None ..但是对于较大的数字,请考虑切换到{ {1}}!