C# 保持一个拆分容器面板的固定宽度?

C# 保持一个拆分容器面板的固定宽度?,c#,winforms,C#,Winforms,我似乎不知道如何在WinForm中的拆分容器中保持面板的宽度固定 有什么建议吗?如果一个面板的大小保持不变,那么移动拆分器就没有合理的方法。由于无法移动拆分器,因此不再使用拆分容器是没有意义的。使用两个面板控件。属性SplitterPanel.FixedPanel-将其中一个面板设置为固定大小 属性SplitterPanel.IsSplitterFixed-设置为true,以使panel1固定 在SplitContainer的属性中,将FixedPanel属性设置为Panel1 然后,将Spli

我似乎不知道如何在WinForm中的拆分容器中保持面板的宽度固定


有什么建议吗?

如果一个面板的大小保持不变,那么移动拆分器就没有合理的方法。由于无法移动拆分器,因此不再使用拆分容器是没有意义的。使用两个面板控件。

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


属性
SplitterPanel.IsSplitterFixed
-设置为true

,以使
panel1
固定 在
SplitContainer
的属性中,将
FixedPanel
属性设置为
Panel1


然后,将
SplitDistance
Panel1MinSize
设置为相同的值

这取决于你想要什么

// 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;
FixedPanel
让用户调整面板的大小,但当控件调整大小时,它不会自动调整大小

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

如果您同时使用这两种方法,那么它将是完全固定的。但是你最好像Hans说的那样使用两个面板。

固定面板(锁定面板):


如果希望宽度固定,为什么要使用拆分容器?您可以使用两个面板。或者最好使用每个控件的锚属性。拆分容器是专门为具有液体面板而设计的吗?啊!或者,一个TableLayoutPanel可能比两个独立的面板更合适。多亏您引导了正确的方向,在这种情况下使用splicontainer是没有意义的:)我不同意。以嵌入拆分容器为例。我有3个部分,其中2个我想是可调整的(想想3列-左边的数据列,右边的数据列,和一个工具按钮列在中间的固定宽度)。因此,如果我只使用1个拆分容器,我不能在右侧放置面板,并停靠Listbox控件。列表框最终位于面板后面,部分被遮挡。请注意,当SplitContainer的总体大小变得太小时,固定面板将缩小到合适的大小,并且不会恢复到“固定”大小,除非您在SizeChanged事件中注意到这一点……min。面板大小是否可以防止此问题?谢谢,这很有帮助。一个修正,属性是
SplitterDistance
,而不是SplitDistance。此外,我必须修改表单背后的代码,因为这些属性在IDE的properties窗口中无法访问,也无法通过表单事件(例如表单加载)中的代码访问。
SplitContainer.FixedPanel = FixedPanel.Panel