首页 > 解决方案 > 如何防止状态栏覆盖我的 RichTextBox?

问题描述

那里!我正在创建一个类似记事本的程序(更高级),但有些事情困扰着我......

Notepad++Notepad位于Status BarRichTextBox/TextBox 边框下方。从字面上看就在它下面。

Status Bar在我的表单上添加了一个控件(Lines、Line、Column、FileSize...),但我仍然无法让它留在 RichTextBox 下,这样它就不会阻止用户查看文本。

例如...

我有一个 RichTextBox,用户将一个巨大的文件加载到其中。它们向下滚动到最底部,最后一两行被Status Bar.

我希望它保持在 RichTextBox 下方,这样它就不会阻挡用户的视线。这看起来很草率,会导致我的客户要求退款。

标签: winformswindows-forms-designerdocking

解决方案


当将控件停靠在容器内时,停靠控件相对于另一个控件的优先级使用它们的 z 顺序进行调节。具有较高优先级(z 顺序中较低位置)的控件在布局中优先于具有较低优先级(z 顺序中较高位置)的控件。

控件的对接优先级

另请参阅Control.Dock属性 的备注部分。

要分配更高的优先级,请右键单击停靠的控件并选择SendToBack。代之以
选择较低的优先级。BringToFront

在这种特定情况下,未停靠的 RichTextBox 被StatusBar 控件(不是 StatusStrip,z 顺序分配给这两个控件的方式略有不同)遮蔽,默认情况下停靠在底部
一种解决方案是停靠 RichTextBox 控件,通过右键单击它并选择BringToFront.
在 StatusBar 控件上重复该操作,在这种情况下选择SendToBack。这将导致 StatusBar 占据其 Form 容器的整个底部,而 RichTextBox 控件占据剩余空间。
这两个控件不再重叠,并且在调整窗体大小时不会影响布局。


推荐阅读