我在我的自定义网格控件中有一个线条颜色属性。我希望它默认为Drawing.SystemColors.InactiveBorder。我试过了:
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }但它似乎不起作用。如何使用default value属性做到这一点?
发布于 2008-09-04 13:23:39
您需要将第一个参数从SystemColors更改为Color。
似乎没有用于SystemColors类型的类型转换器,只有用于Color类型的。
[DefaultValue(typeof(Color),"InactiveBorder")]发布于 2008-09-04 16:03:41
根据Matt发布的链接,DefaultValue属性并不设置属性的默认值,它只是让表单设计者知道该属性有一个默认值。如果更改属性的默认值,则该属性在“属性”窗口中显示为粗体。
你不能使用自动属性来设置默认值--你必须用老式的方法来做:
class MyClass
{
Color lineColor = SystemColors.InactiveBorder;
[DefaultValue(true)]
public Color LineColor {
get {
return lineColor;
}
set {
lineColor = value;
}
}
}https://stackoverflow.com/questions/43738
复制相似问题