根据表单大小设置 splitContainer 属性大小 C# WinForms

Posted

技术标签:

【中文标题】根据表单大小设置 splitContainer 属性大小 C# WinForms【英文标题】:Setting splitContainer property sizes depending on Form size C# WinForms 【发布时间】:2015-06-20 17:53:33 【问题描述】:

我无法根据我的表单大小设置 splitContainer 大小。

当我的表单被加载时,它位于1170,930MinimumSize。但是,如果我调整我的表单大小,.SplitterDistance.Panel2MinSize 都在不同的地方,那么它们应该在哪里。

我使用Form_SizeChanged 事件尝试了以下操作,但它无法正常工作。有没有办法可以计算 .SplitterDistance.Panel2MinSize 来满足表单调整大小的需求。

private void MainForm_SizeChanged(object sender, EventArgs e)

    int x = this.Size.Height;         
    int y = this.MinimumSize.Height;   

    splitContainer1.SplitterDistance = splitContainer1.SplitterDistance + (x - y);
    splitContainer1.Panel2MinSize = splitContainer1.Panel2MinSize + (x - y);

提前致谢。

编辑

添加了一些图片以在下面提供更好的示例。

表单标准(应该是什么样子)

表格调整大小

【问题讨论】:

【参考方案1】:

您似乎想保持其中一个面板的大小相同,并在调整窗体大小时移动拆分器。

有一个属性告诉它在调整大小时第一个面板还是第二个面板应该保持“固定”:

splitContainer1.FixedPanel = FixedPanel.Panel2;  // or FixedPanel.Panel1

【讨论】:

我知道有.IsSplitterFixed 属性,但不知道.FixedPanel.. 谢谢!

以上是关于根据表单大小设置 splitContainer 属性大小 C# WinForms的主要内容,如果未能解决你的问题,请参考以下文章

SplitContainer 面板调整大小问题

SplitContainer - 调整大小时固定面板高度

C# splitContainer1 调整子控件大小

如何使 SplitContainers 中的 ListBoxes 正确调整大小?

Winforms 面板尺寸

强制 DataGridView 填充 SplitContainer 中的可用空间