SplitContainer 中的 FixedPanel 导致对大小的无知

The*_*gth 4 .net c# winforms

我有以下代码将第一个面板的宽度设置为我需要的宽度(出于某种原因,我需要将 expectedWith 除以 2 以获得实际宽度为我的 expectedWith - 不知道为什么)。

splitContainer1.SplitterDistance = expectedWith / 2;
Run Code Online (Sandbox Code Playgroud)

接下来我需要的是第一个面板是固定的,这意味着如果您调整窗口大小,只有第二个面板变大而第一个面板保持大小。为了实现这一点,我使用以下行:

splitContainer1.FixedPanel = FixedPanel.Panel1;
Run Code Online (Sandbox Code Playgroud)

现在的问题:似乎 FixedPanel 属性完全忽略了第一个面板的大小。如果我使用 FixedPanel-line,我将 SplitterDistance-property 设置为哪个值并不重要。它总是一样的。如果我在表单设计器中设置 SplitterDistance 甚至都没有关系。

这个问题有方法解决吗?

The*_*gth 5

我可以回答我自己的问题。仅当相应面板的内容在其 Dock 属性中使用 DockStyle.Fill 时才会发生这种情况。解决方法是在设置FixedPanel 后立即设置DockStyle.Fill 值。这也是问题中解释的“除以二”行为的原因。

感谢约翰威廉姆斯。