Standardwert für System.Zeichnung.SystemColors
-
09-06-2019 - |
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?
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;
}
}
}