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

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

SplitContainer1.Panel1包含已停靠的SplitContainer2

SplitContainer1.Panel2包含已停靠的SpliContainer3

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

SplitContainer1SplitterWidth为3。
SplitContainer2SplitContainer3SplitterWidth为6。

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

我进行此工作的唯一方法是在表单的Load Event中,重新指定我完全呆板的SplitterWidths。为什么SplitterWidths不能保持在设计器中指定的值?

如果有人可以阐明这一点,那真是太棒了!!

谢谢你的时间,

彼得

最佳答案

只是为了让您永生不衰,

这是Visual Basic现在已有许多版本的旧错误,并且从未得到解决(也不可能得到解决)。

正如Hans Passant所提到的,该问题是由于ISupportInitializeSplitContainer实现引起的。

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

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

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

07-24 09:37