2009-09-03 141 views
9

我有一個WinForm,其中包含一個位於頂部的bindingNavigator和一個splitContainer,下面有兩個水平面板。 splitContainer填充未被bindingNavigator佔用的空間。SplitContainer中的固定面板高度

我想將底部面板設置爲一個固定的高度,比如100像素,並使頂部面板填滿剩下的空間。

這是我當前的代碼:

kundeteamSplitContainer.SplitterDistance = kundeteamSplitContainer.Height - 100; 

我還以爲這將動態設置分離器的距離在任何時候都小於總高度100個像素,從而使得底部面板佔據了剩餘的100像素。這並不像預期的那樣工作,因爲當我在運行時重新調整窗體大小時,底部面板不斷變化大小。

編輯:我堅持splitContainer,如果可能的話。獲得了一些與隱藏/顯示已經實現的底部面板相關的功能,我不想再做這個工作。

回答

17

正如指出的李:

設置FixedPanel屬性要保持相同尺寸的面板。

這是這樣的:

teamSplitContainer.SplitterDistance = teamSplitContainer.Height - 100; 
teamSplitContainer.FixedPanel = FixedPanel.Panel2; 
2

我會使用TableLayoutControl這樣的東西,而不是一個分離器。

+0

呃..很可能,但我現在沒有改變。我更有經驗的同事告訴我使用分路器,所以我現在就堅持下去。 – Sakkle 2009-09-03 14:16:17

+0

夠公平的。我只使用了VS2005版本,​​發現它有點太多。 – MartW 2009-09-03 15:33:31

+0

@Sakkle:但如果唯一的要求是保持面板隱藏代碼,您可以將TableLayoutPanel的行高設置爲0,它的工作原理幾乎相同...... – 2013-05-27 12:38:37

26

FixedPanel屬性設置爲您希望保持相同大小的面板。

+0

謝謝......這讓我走上了正確的軌道 – Sakkle 2009-09-03 14:27:55

0

如果你想只顯示並禁用面板(無自動調整大小,不調整大小由用戶)通過Sakkle添加到該行代碼:

teamSplitContainer.IsSplitterFixed = true; 
2

的最佳方式,您可以設置isSplitterFixed屬性爲 「True」

Property Window for splitcontainer