拆分容器中面板的最大高度

Maximum Hight of a panel in Split Container

如何在我的 C# 窗体中设置水平拆分容器中面板的最小和最大高度?

无论 Panel 在哪里,您通常可以通过以下方式指定最大高度和宽度:

panel1.MaximumSize = new Size(300, 300); //max 300 x 300

如果您使用 SplitContainer 并且您的 PanelSplitContainer 中,并且您想要在 SplitContainer 中更改它,但是,您可能在指定最大高度和宽度之前,需要确定 Panel 是否在 Panel1SplitContainerPanel2 中。像这样:

//assuming the name "panel1" in the Panel1 of the SplitContainer
Panel panel = splitContainer1.Panel1.Controls["panel1"];
panel.MaximumSize = new Size(300, 300); //max 300 x 300

但是,如果您想要更改 splitContainer 尺寸本身,您也可以将 MaximumSize 应用于 splitContainer

splitContainer1.MaximumSize = new Size(300, 300);

或者,如果您想更改 splitContainer.Panel1splitContainer.Panel2,您也可以尝试使用 SplitContainer.SplitterDistance 属性。

SplitContainer 有 2 个字段:Panel1MinSize 和 Panel2MinSize。要为 panel1 设置最大尺寸,只需为 panel2 设置合适的最小尺寸即可。

我意识到这个问题很老了,但我到处都找不到合适的答案。有人建议将 Panel1 设置为固定面板,这不是我想要的。我通过使用 splitcontainers sizeChanged 和 SplitterMoved 事件解决了这个问题:

    private const int Panel1MaxWidth = 1075;
    private void splitContainer1_SizeChanged(object sender, EventArgs e)
    {
        if(splitContainer1.Panel1.Width > Panel1MaxWidth)
        {
            splitContainer1.SplitterDistance = Panel1MaxWidth;
        }
    }

    private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e)
    {
        if (splitContainer1.Panel1.Width > Panel1MaxWidth)
        {
            splitContainer1.SplitterDistance = Panel1MaxWidth;
        }
    }

只需将 Pane1MaxWidth 常量设置为您希望 Panel1 的最大尺寸扩展到的值即可。