【发布时间】:2013-11-20 19:28:03
【问题描述】:
我创建了一个用户定义的控件,它继承自 Button 类,我想让一次更改所有按钮的视觉样式变得容易,而不必将每个实例化控件放在集合中并且必须遍历它们以更改特定字段。
问题
我可以使用静态字段来更改父级 base 类中的另一个非静态字段吗?
这是一个简短的例子:
public class KewlButton : Button
{
/// <summary>
/// Changes visual properties of the control in all instances at once.
/// </summary>
class Crossdress
{
static Color BackColor {
private get;
set {
// Set the BackColor in all instances of KewlButton
}
}
}
}
【问题讨论】:
-
您可能必须进行某种所有实例都订阅的事件。
-
您能否编写
KewlButton代码,以便在绘制自身时从静态属性(不必在同一个类中)读取背景颜色?如果您可以在设置静态属性时使整个窗口无效,从而强制所有按钮重绘,那么这可能会起到作用。