2

我的SplitContainer表单上有一个 Dock 属性设置为Fill。它包含几个子控件,其中许多都附加了事件处理程序。后来我决定StatusStrip在我的表格底部放一个。你猜怎么着,我不能设置StatusStrip停靠在我的表单底部。将SplitContainer继续填写整个表格。即使StatusStrip表面上停靠在底部,它实际上隐藏了SplitContainer它后面的底部。

唯一的方法是剪切SplitContainer然后粘贴回来。切割SplitContainer使StatusStrip我的表单上唯一的控件,从而让它捕获底部对接。之后,粘贴SplitContainer允许它填充剩余区域。总之,对接采用先到先得的方式。

现在,由于我的控件附加了许多事件处理程序,因此剪切和粘贴对我来说是一场噩梦。在 C# 中拥有我的项目意味着我必须手动附加所有这些事件处理程序。

有更好的解决方法吗?

4

1 回答 1

4

这是拆分器和状态条之间的 z 顺序问题。当您有一个想要停靠填充的控件和一个或多个想要停靠顶部、左侧、右侧或底部的控件时,您必须让填充控件成为 z 顺序中的第一个。

更好的方法是打开 Document Outline 工具,选择 SplitContainer 并使用向上或向下按钮更改其 z 顺序。

我应该补充一点,在 Winforms 中,z 顺序由您将控件添加到 Controls 集合的顺序指定。该顺序决定了相关系统控件的创建顺序,因此决定了它们的 z 顺序。使用 Document Outline 工具更改 z-order 只会导致生成的代码重新排序。

于 2013-07-10T21:12:08.130 回答