2009-09-03 8 views
9

상단에 bindingNavigator가 포함 된 WinForm이 있고 그 아래에 두 개의 수평 패널이있는 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

저는 Splitter 대신 TableLayoutControl을 사용합니다.

+0

음. 그럴 수도 있지만, 지금은 변함이 없습니다. 나의 숙련 된 동료들은 나에게 스플리터를 사용하라고 말했기 때문에 지금 당장 그것에 충실 할 것이다. – Sakkle

+0

충분합니다. VS2005 버전 만 사용했는데 버그가 너무 많습니다. – MartW

+0

@Sakkle : 그러나 유일한 요구 사항은 패널 숨기기 코드를 유지하는 경우 TableLayoutPanel의 행 높이를 0으로 설정하면 거의 동일하게 작동합니다. –

26

동일한 크기로 유지하려는 패널에 FixedPanel 속성을 설정하십시오.

+0

감사 ...이 것이 올바른 위치에 놓여 있습니다. – Sakkle

0

만약 당신이 원하는 경우에만 표시하고 패널 (자동 크기 조정, 사용자가 어떤 크기 조정)을 사용하지 Sakkle하여 코드이 줄을 추가 :

teamSplitContainer.IsSplitterFixed = true; 
2

가장 좋은 방법은 당신이

Property Window for splitcontainer

"참"isSplitterFixed 속성을 설정할 수 있습니다
관련 문제