0

在未更改默认 Form1 表单的属性的新项目中从头开始,我在表单上放置了一个 SplitContainer 并将其属性设置为:

锚点 - 顶部,左侧

码头 - 填充

方向 - 垂直

然后,我将第二个 SplitContainer 放到第一个 SplitContainer 的左侧面板(面板 1)中,并再次将其属性设置为上述属性,但这次拆分器的方向设置为水平。

我现在在第二个 SplitContainer 的上下面板(面板 1 和 2)中都放置了两个 CheckedListBox。两个 CheckedListBox 的属性都设置为:

锚点 - 顶部,左侧

码头 - 填充

我现在将一个 TextBox 添加到第一个 SplitContainer 的右侧面板(面板 2),并将其属性设置为:

锚点 - 顶部,左侧

码头 - 填充

多行 - 真

当我编译并运行此应用程序时,构成我添加的第一个 SplitContainer 的一部分的垂直拆分器的行为和工作方式完全符合预期 - 所以那里没有问题。但是,第二个 SplitContainer 中的水平方向拆分器始终显示不稳定的行为 - 拆分器本身的宽度会随着上下移动而发生变化。但是,分离器宽度的这种增加或减少也与它移动的方向不一致 - 例如,在启动时将其从初始位置向上移动一段距离可能会导致分离器比以前更薄,而进一步向上调整大小会导致它变厚。

当我移动拆分器时,下部 CheckedListBox 的底部边缘也会上下移动,并且与之前一样,此行为与拆分器移动的方向不一致。

为了避免将组件属性的更改从一个实验转移到另一个实验,我一直试图通过从头开始启动六个左右的新项目并尝试不同的事情来弄清楚发生了什么,包括对 Anchor、BorderStyle、Dock 的更改, 和 Margin 属性,但不幸的是我并不聪明:-(

有没有人对这种不稳定的行为有类似的经历,可以为我提供解决方案?我可能忽略了一些简单的事情,如果是这样,那是什么?

谢谢阅读。

编辑\更新-经过进一步的实验,我能够确定我遇到的不需要的行为与 CheckedListBoxes 有某种关系-我用多行文本框替换了这两个文本框,其“锚”和“停靠”的属性设置为“顶部, Left" 和 "Fill" 分别在运行应用程序时不再出现不稳定的行为 - 垂直和水平拆分器都正常工作。

4

1 回答 1

2

将列表框的 IntegralHeight 属性设置为 False,以便允许它们自行调整大小以适合面板。

于 2010-10-24T18:26:55.303 回答