我的自定义网格控件中有一个线条颜色属性。我希望它默认为 Drawing.SystemColors.InactiveBorder. 。我试过:

[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }

但这似乎不起作用。如何使用默认值属性来做到这一点?

有帮助吗?

解决方案

这可能会有所帮助: http://support.microsoft.com/kb/311339 - KB文章,标题为“ DefaultValueAttribute类的MSDN文档可能会造成混淆”

其他提示

您需要将第一个参数更改为 SystemColorsColor.
似乎没有类型转换器 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;
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top