所以我有 3 个拆分容器,每个容器有 2 个面板。
SplitContainer1
是停靠在窗体(父 (中的主容器。
SplitContainer1.Panel1
包含停靠SplitContainer2
。
SplitContainer1.Panel2
包含停靠SpliContainer3
。
目前为止,一切都好。
SplitContainer1
的SplitterWidth
为 3。 SplitContainer2
和SplitContainer3
的SplitterWidth
为 6。
在设计器中,您可以看到它们之间的SplitterWidth
差异,但是当我构建解决方案时,无论我做什么,SplitContainer2
和 SplitContainer3
的SplitterWidth
都会重置回 4。 我已经更改了表单的"初始化组件"中的代码,但没有效果。
我让它工作的唯一方法是在表单的Load Event
,重新指定我觉得完全愚蠢的SplitterWidths
。 为什么SplitterWidths
不会保留在设计器中指定的值?
如果有人能对此有所了解,那将是什么了不起的!!
谢谢你的时间,
彼得
只是为了不让这个问题永远得不到回答——
这是一个古老的错误,现在已经在Visual Basic中存在许多版本,并且从未得到解决(也不太可能得到解决(。
正如Hans Passant所提到的,该问题是由于SplitContainer
的ISupportInitialize
实施。
由于这是一个错误,因此没有任何逻辑意义的解决问题的明确方法。
我在模拟程序中测试过的一种方法是@xfx所说 - 以编程方式添加和操作控件,而不是使用工具箱。
另一种方法是以编程方式重新加载SplitterWidths
,无论是在最有可能的Form_Load
上,还是在代码中可能需要的其他任何位置。