System.Drawing.SystemColors 的默认值
-
09-06-2019 - |
题
我的自定义网格控件中有一个线条颜色属性。我希望它默认为 Drawing.SystemColors.InactiveBorder
. 。我试过:
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }
但这似乎不起作用。如何使用默认值属性来做到这一点?
解决方案
这可能会有所帮助: http://support.microsoft.com/kb/311339 - KB文章,标题为“ DefaultValueAttribute类的MSDN文档可能会造成混淆”
其他提示
您需要将第一个参数更改为 SystemColors
到 Color
.
似乎没有类型转换器 SystemColors
类型,仅适用于 Color
类型。
[DefaultValue(typeof(Color),"InactiveBorder")]
根据 Matt 发布的链接,DefaultValue 属性不会设置属性的默认值,它只是让表单设计者知道该属性 有 默认值。如果更改属性的默认值,该属性将在属性窗口中显示为粗体。
您无法使用自动属性设置默认值 - 您必须以老式方式进行设置:
class MyClass
{
Color lineColor = SystemColors.InactiveBorder;
[DefaultValue(true)]
public Color LineColor {
get {
return lineColor;
}
set {
lineColor = value;
}
}
}
不隶属于 StackOverflow