8

所以我有 3 个拆分容器,每个容器有 2 个面板。

SplitContainer1是停靠在 Form ( Parent ) 中的主容器。

SplitContainer1.Panel1包含SplitContainer2停靠的。

SplitContainer1.Panel2包含SpliContainer3停靠的。

到目前为止,一切都很好。

SplitContainer1有一个SplitterWidth3。 SplitContainer2并且SplitContainer3有​​一个SplitterWidth6。

在设计器中,您可以看到它们之间的SplitterWidth区别,但是当我构建解决方案时,无论我做什么, SplitterWidthofSplitContainer2和都会重置回 4。SplitContainer3我已经更改了表单的“InitializeComponent”中的代码,但没有任何效果。

我得到这个工作的唯一方法是在Load Event表单中,重新指定SplitterWidths我觉得完全愚蠢的。为什么不会SplitterWidths停留在我在设计器中指定的值?

如果有人能对此有所了解,那将是太棒了!

谢谢你的时间,

彼得

4

1 回答 1

2

只是为了不让这件事永远得不到答案——

这是一个旧的错误,现在许多版本都在 Visual Basic 中,并且从未解决(也可能永远不会解决)。

正如 Hans Passant 提到的,问题是由于ISupportInitialize.SplitContainer

由于这是一个错误,因此没有明确的方法可以解决任何合乎逻辑的问题。

正如@xfx 所说,我在模拟程序中测试过的一种方法是 - 以编程方式添加和操作控件,而不是使用工具箱。

SplitterWidths另一种方法是以编程方式重新加载,无论Form_Load是最有可能的 on 还是代码中可能需要的任何其他位置。

于 2016-12-16T11:44:26.883 回答