2010-12-14 12 views
2

Hallo Ich arbeite in VB.Net 2010 Framework 2.0. 150, 145, 145, diesen Wert sehen, wie „NewColor“ in Formular-Designer zu sehenSo zeigen Sie die Konstante für die Eigenschaft anstelle von

Dim NewColor As Color = Color.FromArgb(150, 145, 145) 

Private _myColor As Color = NewColor 
Public Property MyColor() As Color 
    Get 
     Return _myColor 
    End Get 
    Set(ByVal value As Color) 
     _myColor = value 
    End Set 
End Property 

im Formular-Designer wird die Eigenschaft „MyColor“ den Wert Ich möchte: Angenommen, ich eine Eigenschaft deklarieren. Dies ist das gleiche wie ControlDark, ActiveBorder etc. Systemfarben. Ich möchte, dass Designer anstelle des Farbwerts den Variablennamen anzeigen sollte. Das .Net-Framework verwendet auch die obige Implementierung für Systemfarben und das gleiche möchte ich tun.

Vielen Dank für eine Antwort im Voraus.

Antwort

0

Dies ist möglich, aber nicht einfach.

Sie sollten Ihren eigenen Typ definieren, wahrscheinlich die aktuelle Eigenschaft im Browser mit einem <Browsable(False)>-Attribut ausblenden und eine Schatteneigenschaft erstellen, die Ihren eigenen Typ hat. Dieser Typ sollte wissen, wann er auf eine Variable "zeigt" oder selbst eine Farbe hat.

Auf dem neuen Typ sollten Sie ToString überschreiben, um zurückzugeben, was Sie anzeigen möchten. Und erstelle deinen eigenen Editor. Weitere Informationen finden Sie unter EditorAttribute.

Sie können ein Dropdown-Menü wie "Farbe hat" mit einem zusätzlichen Tab erstellen, auf dem Ihre Variablen aufgelistet sind.

Wenn Sie die zusätzlichen Eigenschaften nicht erstellen möchten (es ist ein schlechtes OO), können Sie auch TypeConverter für die Klasse definieren und jede Eigenschaft und Verhalten angeben.

BTW: Die Farbstruktur speichert einen KnownColor-Wert (Color.Red oder SystemColor.WindowText) oder die RGB-Werte. So weiß es, dass es auf eine bekannte Farbe zeigt. Ihre Struktur sollte auch wissen, ob sie auf eine Variable (und welche Variable) zeigt oder eine System.Color ist.

+0

Können Sie bitte irgendein Beispiel zur Verfügung stellen? – Amol

+0

Denken Sie nicht über kurze 10-Zeilen-Fixes dafür nach. Auf MSDN gibt es Beispiele. Für den Editor: http://msdn.microsoft.com/en-us/library/53c49eck.aspx, für TypeConverter: http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx – GvS

+0

Danke für die Antwort . Die Lösung, die du sagst, ist die Antwort. Danke noch einmal – Amol