Winforms 如何防止状态栏覆盖我的RichTextBox。。。?C#

Winforms 如何防止状态栏覆盖我的RichTextBox。。。?C#,winforms,windows-forms-designer,Winforms,Windows Forms Designer,那里!我正在创建一个类似记事本的程序(更高级),有一些东西困扰着我 记事本++&记事本的状态栏位于richtextbox/textbox边框下方就在它下面。 我在表单上放置了一个状态栏,并添加了控件(行、行、列、文件大小…),但我仍然无法让它停留在richtextbox下,这样它就不会阻止用户查看文本 对于示例… 我有一个richtextbox,用户将一个巨大的文件加载到其中。它们向下滚动到最底部,最后一行或两行由状态栏覆盖 我希望它保持在richtextbox下面,这样它就不会阻止用户的查看。

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

记事本++&记事本的
状态栏
位于richtextbox/textbox边框下方就在它下面。

我在表单上放置了一个
状态栏
,并添加了控件(行、行、列、文件大小…),但我仍然无法让它停留在richtextbox下,这样它就不会阻止用户查看文本

对于示例…

我有一个richtextbox,用户将一个巨大的文件加载到其中。它们向下滚动到最底部,最后一行或两行由
状态栏覆盖

我希望它保持在richtextbox下面,这样它就不会阻止用户的查看。这看起来很草率,会导致我的客户立即要求退款


感谢您的帮助!:)

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

另请参见物业的备注部分

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

在这个特定的例子中,一个未固定的RichTextBox被一个默认停靠在底部的StatusBar控件(不是StatusStrip,在如何将z顺序分配给这两个控件上存在一些差异)遮挡住了。
一种解决方案是停靠RichTextBox控件,通过右键单击它并选择
BringToFront

在状态栏控件上重复该操作,在本例中选择
SendToBack
。这将导致状态栏占据其表单容器的整个底部,而RichTextBox控件则占据剩余空间。

这两个控件不再重叠,并且在调整窗体大小时布局不会受到影响

也许你忘了对接RichTextBox了?如果希望控件在停靠时具有较低的优先级,
BringToFront()
it。当然,更高的优先级是通过
SendToBack()
实现的。关于@Jimi It表单上停靠控件的一些注意事项对我没有多大帮助。这些都没有告诉我如何真正防止richtextbox被覆盖。“对接”?我不明白。我在rtb/statusbar属性中看到了“Dock”,但我不知道该在那里做什么。。。我尝试将
RichTextBox
停靠在中间,但它只填充了整个表单:(我试着将状态栏放在前面/后面,并用richtextbox做了同样的尝试….你似乎在这方面有很多知识,所以你可以用
richtextbox
statusbar
进行测试吗?如果你发现一些与我需要的匹配/工作的东西,请发布sourceFirst,你实际上是指状态栏还是你指的是一个StatusStrip?它变化不大,只是在这个上下文中的细微差别。我不知道你的布局是什么样子(你刚才描述了两个著名的应用程序,不是你的)。如果创建一个空表单并在其上放置RichTextBox和状态栏/StatusStrip,则可以将RTB停靠到
Fill
。默认情况下,任何状态对象停靠到
Bottom
。但状态栏的优先级较低。您必须右键单击它并选择
SendToBack
,以赋予它更高的优先级(按z顺序)此时,RTB(状态栏可能部分遮挡了RTB)停靠在状态栏的上侧。这通常不会发生在StatusStrip上(默认情况下,它在z顺序中具有更高的优先级).标记为答案!-虽然…这有点奇怪..你怎么能把它带到前面,然后把它发送到后面…?或者这是一个眼睛的把戏…?嘿…:再次害怕第一部分:当你
SendToBack
一个控件时,你给它分配了一个较低的z顺序。具有较低z顺序的控件比同一堆栈中的其他控件具有更高的优先级首先,当控件没有停靠时,显然您有一种不同的行为,这似乎是违反直觉的。只需考虑该设置如何改变控件的Z顺序,以及如何在每个上下文中解释这一点。