在Visual Studio中,所有控件的属性都被禁用了。

3
我有一个父表单和一个继承自它的子表单。在设计模式下,所有继承的控件属性都被禁用了。如何在子表单中更改这些属性? 以下是设计师的屏幕截图。请注意,我已选择了一个文本框,所有属性都被禁用(灰色)。 Screenshot

父窗体中定义的控件默认为private,因此无法在子窗体的设计器中进行编辑。如果我没记错的话,您可以通过使用父窗体的设计器将它们更改为protected来解决这个问题。 - BJ Myers
我已经做了,但是它还没有起作用。子控件的属性仍然被禁用。 - user3646717
刚刚我自己试了一下,对我来说是有效的。你是如何将控件改为 protected 的?之后进行了构建吗? - BJ Myers
现在它可以工作了!我一直以为保存通常就足够让更改生效,我不明白为什么... - user3646717
设计视图往往需要重新构建。我在下面的答案中已经指出了这一点。 - BJ Myers
离题了,但为了充分利用可用空间并更好地查看属性和设计器,请拖动属性窗口并将其停靠在 Visual Studio 的右侧。 - Reza Aghaei
1个回答

4

默认情况下,Windows Forms设计器会使用 private 访问修饰符创建组件。这意味着继承的窗体可以呈现控件,但无法修改它们。

要解决此问题,请在设计器中打开基本窗体。选择您想要能够修改的控件,并将 Modifiers 属性更改为 Protected

将访问修饰符更改为 Protected

重要提示:更改后,必须重新构建基本窗体的项目,才能在继承窗体的设计器视图中显示更改内容。


非常感谢BJ Myers! - user3646717
我对此感到非常疯狂!我知道我必须更改修饰符,甚至曾经让它工作过一次。但是无法再现它。正如你提到的那个最后的“Important”步骤是我所缺失的。回想起来很有道理。谢谢。 - ThermoX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接