要快速总结问题,请查看底部的图片。
你好,
我创建了一个Form
(名为BaseForm)作为我所有窗口的基础。
这个基本表单包含(为了简单起见)底部的“状态栏”(用户控件)之类的东西。
该状态栏已锁定,因此无法在设计器中移动或调整其大小。 它还将其 anchor 设置为左、下、右,因此它始终保持在底部并水平调整大小。
现在,当制作另一个 Form
并进行更改以使其继承 MyProject.BaseForm 而不是 System.Windows.Forms.Form 时,状态栏就在那里。
但是现在状态栏的位置和大小有问题。 状态栏标准位置和大小错误。 VisualStudio 从 BaseForm 获取位置和大小,而不是应用 Anchor。
此外,我无法(也不想!)移动/调整状态栏大小来解决问题。
一个明显且有效的解决方案是将状态栏 Dock 属性设置为 Bottom。 但我不能使用它作为我的问题的通用解决方案,因为我也有不应该停靠的控件。 (例如,按钮应始终位于表单的右下角)
最佳答案
你有一个简单的问题,控件是私有(private)的,因此不能在派生形式中被弄乱。它的所有属性都不可访问,包括位置和大小。这会将它卡住在派生形式的错误位置。布局引擎也无法移动它。以及为什么它显示锁定图标。
返回到 BaseForm,选择用户控件并将 Modifiers 属性从 Private 更改为 Protected。重建。现在您可以将其移动到派生表单上需要移动的位置。
关于c# - 如何强制以父类(super class)形式放置控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15710373/