代码之家  ›  专栏  ›  技术社区  ›  Ozgur Ozcitak Vikash Choudhary

System.Drawing.SystemColor的默认值

  •  4
  • Ozgur Ozcitak Vikash Choudhary  · 技术社区  · 18 年前

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

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

    但它似乎不起作用。如何使用默认值属性实现这一点?

    3 回复  |  直到 17 年前
        1
  •  13
  •   Pooven    14 年前

    您需要将第一个参数从 SystemColors 到 Color .
    这似乎是没有类型转换器的 类型,仅适用于 颜色

    [DefaultValue(typeof(Color),"InactiveBorder")]
    
        2
  •  2
  •   roomaroo    18 年前

    根据链接,DefaultValue属性没有设置属性的默认值,它只是让表单设计者知道属性 有 默认值。如果从默认值更改特性,则它将在“特性”窗口中显示为粗体。

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

    class MyClass
    {
        Color lineColor = SystemColors.InactiveBorder;
    
        [DefaultValue(true)]
        public Color LineColor {
            get {
                return lineColor;
            }
    
            set {
                lineColor = value;
            }
        }
    }
    
    推荐文章