Winforms面板大小

问题描述:

在我的表单中,我有一个autosize = true的面板。Winforms面板大小

该面板包含一个SplitContainer控件,其中2个面板水平排列。

顶部面板包含一个datagridview,底部面板包含一个文本框。

有没有一种方法,我可以以编程方式调整顶部面板,因此基于datagridview的高度改变整个SplitContainer的

UPDATE(按行数决定): 我现在能调整具有Dock = Bottom的SplitContainer的大小,但是,为了响应SplitContainer控件的高度更改,父面板的Layout事件不会被触发,即使认为父面板的Autosize = True

+0

如果您可以包括如何添加新行将会很有帮助! –

尝试设置分隔符SplitContainer基于网格高度的距离。

SplitterDistance获取或设置分离器的位置,以像素为单位,从所述的SplitContainer的左侧或上边缘。

通过https://msdn.microsoft.com/en-us/library/system.windows.forms.splitcontainer.splitterdistance(v=vs.110).aspx

编辑 什么工作对我来说是为SplitContainer的设置码头,,然后让我设置的SplitContainer(调用SplitContainer.Height)的大小和让面板调整大小以适应SplitContainer。

编辑2 为了让SplitContainer的自动大小它的宽度,你可以尝试以下方法:

splitContainer.Width = this.ClientRectangle.Width - (splitContainer.Location.X * 2) 

This.ClientRectangle.Width应该得到的窗口的宽度无边框(如果父母是表格)。

+0

我已经尝试改变SplitterDistance,但它没有达到我想要的目标,因为我希望整个SplitContainer高度不仅仅是其中的一个面板。 –

+0

@ H.Tran请让我知道,如果上述编辑帮助。 – nolnah93

+0

我已经尝试过改变SplitterDistance,但它没有达到我想要的目标,因为我想让整个SplitContainer高度不仅仅是它的面板。 –