我的自定义网格控件中有一个线条颜色属性。我希望它默认为Drawing.SystemColors.InactiveBorder
. 我试过了:
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }
但这似乎不起作用。如何使用默认值属性来做到这一点?
我的自定义网格控件中有一个线条颜色属性。我希望它默认为Drawing.SystemColors.InactiveBorder
. 我试过了:
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }
但这似乎不起作用。如何使用默认值属性来做到这一点?
您需要将第一个参数从 更改SystemColors
为Color
。
似乎没有类型的类型转换器SystemColors
,只有Color
类型。
[DefaultValue(typeof(Color),"InactiveBorder")]
根据马特发布的链接, DefaultValue 属性不设置属性的默认值,它只是让表单设计者知道该属性具有默认值。如果您更改默认值的属性,它在属性窗口中显示为粗体。
您不能使用自动属性设置默认值 - 您必须以老式方式进行设置:
class MyClass
{
Color lineColor = SystemColors.InactiveBorder;
[DefaultValue(true)]
public Color LineColor {
get {
return lineColor;
}
set {
lineColor = value;
}
}
}