【发布时间】:2017-07-05 16:09:02
【问题描述】:
我们有几个 winforms 应用程序我们想要重新设计并使其保持一致(风格明智)。我们想为一些窗口控件(例如按钮和工具条)创建一些基类。我所有的基类打算做的是指定我们希望应用的特定样式。这在我第一次带入我的表单时有效,但后来如果我想更新一个属性,它不会将它应用回以前已经将其拉入的表单。无论如何要让它工作?这是一个示例,假设我想为工具条创建一个基类。我要做的就是将背景色设置为绿色(我真的很想设置更多属性,但这是为了演示我的问题)。所以我创建了一个名为 BaseControls 的类库,并创建了一个名为 BaseToolStrip 的类,并在其构造函数中将背景色设置为绿色。
public class BaseToolStrip : ToolStrip
{
public BaseToolStrip()
{
BackColor = Color.Green;
}
}
现在,如果我创建一个演示项目并将 BaseToolStrip 的一个实例添加到它可以工作的表单中。它创建了一个绿色工具条。稍后,如果我决定我希望我的基本工具条具有红色的背景色,如果我更新我的 BaseToolStrip 类中的构造函数并设置 BackColor = Color.Red 并运行我的解决方案,颜色仍然是绿色。看来,一旦我将该控件放入其中,就会设置背景色 = 绿色。因此,即使在我的基类中,我在实例化它的表单中设置了 backcolor = red,它仍然具有 backcolor = green。有什么方法可以覆盖所有实例并将背景颜色设置为我的 BaseToolStrip 类中指定的颜色?
【问题讨论】:
-
旁注不是基类,它是继承类,像
MyStyledToolStrip这样的东西会更好。 -
这只是设计器的问题还是在运行时也会发生?
-
也发生在运行时。