4

カスタムグリッドコントロールに線の色のプロパティがあります。デフォルトでにしたいと思いますDrawing.SystemColors.InactiveBorder。私は試した:

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

しかし、それは機能していないようです。デフォルト値属性を使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

13

SystemColors最初の引数を からに変更する必要がありますColor
型の型コンバーターはなく、SystemColors型のみのようColorです。

[DefaultValue(typeof(Color),"InactiveBorder")]
于 2008-09-04T13:23:38.647 に答える
2

Mattが投稿したリンクによると、DefaultValue属性はプロパティのデフォルト値を設定せず、プロパティにデフォルト値があることをフォーム設計者に通知するだけです。プロパティをデフォルト値から変更すると、プロパティウィンドウに太字で表示されます。

自動プロパティを使用してデフォルト値を設定することはできません。これは、昔ながらの方法で行う必要があります。

class MyClass
{
    Color lineColor = SystemColors.InactiveBorder;

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

        set {
            lineColor = value;
        }
    }
}
于 2008-09-04T16:03:40.837 に答える