vb.net – 嵌套的SplitContainers会破坏SplitterWidth

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

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

SplitContainer1.Panel1包含停靠的SplitContainer2.

SplitContainer1.Panel2包含停靠的SpliContainer3.

到现在为止还挺好.

SplitContainer1的SplitterWidth为3.
SplitContainer2和SplitContainer3的SplitterWidth为6.

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

我得到这个工作的唯一方法是在窗体的Load Event中,重新指定SplitterWidths,我发现它完全是哑巴.为什么SplitterWidth不会保持在Designer中指定的值?

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

谢谢你的时间,

彼得

这样就永远不会得不到答案 –

这是一个旧的错误,现在已经在许多版本的Visual Basic中使用,并且永远不会解决(也不可能解决).

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

由于它是一个错误,因此没有明确的方法来解决任何符合逻辑的问题.

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

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

相关文章
相关标签/搜索