Frage

Ich habe eine line color-Eigenschaft in meinem benutzerdefinierten grid-control.Ich möchte, dass es standardmäßig Drawing.SystemColors.InactiveBorder.Ich habe versucht:

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

Aber es scheint nicht zu funktionieren.Wie mache ich das mit dem Standard-Attribut-Wert?

War es hilfreich?

Lösung

Dies kann helfen: http://support.microsoft.com/kb/311339 -- ein KB-Artikel mit dem Titel "MSDN-Dokumentation für die DefaultValueAttribute Klasse kann verwirrend sein"

Andere Tipps

Sie ändern müssen erste argument von SystemColors zu Color.
Es scheint, dass es keinen Typ-Konverter für die SystemColors Typ, nur für die Color Typ.

[DefaultValue(typeof(Color),"InactiveBorder")]

Nach der Verknüpfung Matt gepostet, die DefaultValue-Attribut nicht gesetzt, ist der Standardwert der Eigenschaft, es nur können den Formular-designer wissen, dass die Eigenschaft hat einen default-Wert.Wenn Sie eine Eigenschaft ändern, die aus der Defaultwert ist Fett dargestellt im Fenster Eigenschaften.

Sie können nicht von einer Standard-Wert mit automatischen Eigenschaften, die Sie haben zu tun es die altmodische Art und Weise:

class MyClass
{
    Color lineColor = SystemColors.InactiveBorder;

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

        set {
            lineColor = value;
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top