嵌套的SplitContainers会破坏SplitterWidth

Pet*_*ter 8 vb.net splitcontainer

所以我有3个分体式容器,每个容器有2个面板.

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

SplitContainer1.Panel1包含SplitContainer2哪个停靠.

SplitContainer1.Panel2包含SpliContainer3哪个停靠.

到现在为止还挺好.

SplitContainer1拥有SplitterWidth3, SplitContainer2SplitContainer3拥有SplitterWidth6.

在设计中,您可以看到SplitterWidth区别它们之间,但是当我生成解决方案中,SplitterWidthSplitContainer2SplitContainer3得到重置回4,无论我做什么.我已经更改了表单的"InitializeComponent"中的代码而没有任何效果.

我得到这个工作的唯一方法是在Load Event形式,重新指定SplitterWidths我发现完全愚蠢.为什么不能SplitterWidths保持我在Designer中指定的值?

如果有人能够对此有所了解,那将是多么棒的!!

谢谢你的时间,

彼得

Dav*_*vid 3

只是为了让这个问题永远得不到答案——

这是 Visual Basic 许多版本中都存在的一个老错误,并且从未得到解决(也不可能得到解决)。

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

由于它是一个错误,因此没有明确的方法来解决具有任何逻辑意义的问题。

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

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