2010-07-26 91 views
23

我似乎无法弄清楚如何将面板的宽度固定在WinForm中的拆分容器中。保持一个拆分容器面板的固定宽度?

有什么建议吗?

+0

如果你想宽度被固定,那么为什么使用拆分容器?你可以使用两个面板。或者最好使用每个控件的锚定属性。 – 2010-07-26 19:09:44

+0

拆分容器是专门设计用于液体面板的吗? doh! – sooprise 2010-07-26 19:12:09

回答

7

如果你想保持一个面板的大小固定,没有合理的方式来移动分离器。由于您无法移动分离器,因此再也不使用SplitContainer。使用两个面板控件。

+2

或者TableLayoutPanel可能更适合,而不是2个独立且几乎独立的面板。 – 2013-05-27 12:39:45

+0

感谢您领导正确的方向,在这种情况下,它真的没有意义,有splicontainer :) – Prokurors 2015-07-26 18:09:47

+1

我不同意。例如,我已经嵌入拆分容器的情况。我有3段,其中2我想要调整大小(想想3列 - 一个左侧的数据列,右侧的数据列,以及固定宽度中间的工具按钮列)。所以,如果我只使用1个拆分容器,我不能在右侧放置面板,并停靠Listbox控件。列表框结束在面板后面并部分模糊。 – 2015-11-20 19:28:48

72

属性SplitterPanel.FixedPanel - 设置面板中的一个固定大小

属性SplitterPanel.IsSplitterFixed - 设置为true

+15

这应该是正确的答案! – 2013-02-06 11:03:19

+0

请注意,当SplitContainer的整体尺寸变得太小时,固定面板将缩小到合适的尺寸,并且不会恢复到“固定”尺寸,除非您在SizeChanged事件中处理此事... – 2013-05-28 09:14:13

+0

won 't分钟。面板大小可以防止这个问题 – gg89 2016-06-25 00:56:11

8

为了使panel1固定 在SplitContainer的属性时,FixedPanel属性设置为Panel1

然后,将SplitDistancePanel1MinSize设置为相同的值。

+0

谢谢,它工作正常... – 2015-06-24 12:42:20

+0

谢谢,这有助于。一个更正,属性是'SplitterDistance'而不是SplitDistance。另外,我不得不修改表单背后的代码,因为这些属性在IDE的属性窗口中不可访问,也不能通过Form事件中的代码(例如表单加载)访问。 – 2015-11-20 19:31:31

+0

我收回了,没有奏效。 – 2015-11-20 19:54:16

1
// from Microsoft documentation similar to Dmitri answer::::::::::: 
// if make panel1 fixed: 
mySplitContainer.FixPanel = System.Windows.Forms.FixedPanel.Panel1; 

// if make panel2 fixed (in this case can't use fixed splitter distance): 
mySplitContainer.FixPanel = System.Windows.Forms.FixedPanel.Panel2; 

// and to be safe set the appropriate panel min size for the splitcontainer too; 
0

这取决于你想要的。

FixedPanel让我们用户调整面板的大小,但当控件大小调整后,它不会自动调整大小。

IsSplitterFixed将禁用分离器,但在调整控件大小时仍会自动调整大小。

如果你同时使用它将被全部修复。但是,你最好使用汉斯所说的两个面板。

相关问题