2017-08-08 89 views
0

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

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

頂部面板包含一個datagridview,底部面板包含一個文本框。

有沒有一種方法,我可以以編程方式調整頂部面板,因此基於datagridview的高度改變整個SplitContainer的

UPDATE(按行數決定): 我現在能調整具有Dock = Bottom的SplitContainer的大小,但是,爲了響應SplitContainer控件的高度更改,父面板的Layout事件不會被觸發,即使認爲父面板的Autosize = True

+0

如果您可以包括如何添加新行將會很有幫助! –

回答

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高度不僅僅是它的面板。 –