首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于System.Drawing.SystemColors的DefaultValue

用于System.Drawing.SystemColors的DefaultValue
EN

Stack Overflow用户
提问于 2008-09-04 13:18:16
回答 2查看 6.9K关注 0票数 4

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

代码语言:javascript
复制
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }

但它似乎不起作用。如何使用default value属性做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2008-09-04 13:23:39

您需要将第一个参数从SystemColors更改为Color

似乎没有用于SystemColors类型的类型转换器,只有用于Color类型的。

代码语言:javascript
复制
[DefaultValue(typeof(Color),"InactiveBorder")]
票数 13
EN

Stack Overflow用户

发布于 2008-09-04 16:03:41

根据Matt发布的链接,DefaultValue属性并不设置属性的默认值,它只是让表单设计者知道该属性有一个默认值。如果更改属性的默认值,则该属性在“属性”窗口中显示为粗体。

你不能使用自动属性来设置默认值--你必须用老式的方法来做:

代码语言:javascript
复制
class MyClass
{
    Color lineColor = SystemColors.InactiveBorder;

    [DefaultValue(true)]
    public Color LineColor {
        get {
            return lineColor;
        }

        set {
            lineColor = value;
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档