SplitContainer中的固定面板高度

问题描述:

我有一个WinForm,其中包含一个位于顶部的bindingNavigator和一个splitContainer,下面有两个水平面板。 splitContainer填充未被bindingNavigator占用的空间。SplitContainer中的固定面板高度

我想将底部面板设置为一个固定的高度,比如100像素,并使顶部面板填满剩下的空间。

这是我当前的代码:

kundeteamSplitContainer.SplitterDistance = kundeteamSplitContainer.Height - 100; 

我还以为这将动态设置分离器的距离在任何时候都小于总高度100个像素,从而使得底部面板占据了剩余的100像素。这并不像预期的那样工作,因为当我在运行时重新调整窗体大小时,底部面板不断变化大小。

编辑:我坚持splitContainer,如果可能的话。获得了一些与隐藏/显示已经实现的底部面板相关的功能,我不想再做这个工作。

正如指出的李:

设置FixedPanel属性要保持相同尺寸的面板。

这是这样的:

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

我会使用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

FixedPanel属性设置为您希望保持相同大小的面板。

+0

谢谢......这让我走上了正确的轨道 – Sakkle 2009-09-03 14:27:55

如果你想只显示并禁用面板(无自动调整大小,不调整大小由用户)通过Sakkle添加到该行代码:

teamSplitContainer.IsSplitterFixed = true; 

的最佳方式,您可以设置isSplitterFixed属性为 “True”

Property Window for splitcontainer