2009-08-24 4 views
0

Ich habe ein abstraktes Benutzersteuerelement (baseModule) mit einer Eigenschaft, die ich mit einem bitweisen Vergleich aktivieren möchte, um zu ermitteln, welche Exporttypen von diesem Modul unterstützt werden. Im Designer eines von baseModule abgeleiteten Moduls habe ich eine Combobox mit der Möglichkeit, einen einzelnen Wert auszuwählen (Html, Xml, etc.). Ich hätte gerne ein Drop-Down-Listenfeld, damit ich auswählen kann Welche Werte möchte ich?Bitwise-Eigenschaftenwerte in Designer

Wie kann ich dies innerhalb von VS2008 erreichen? Ich habe gesehen, dass andere Eigenschaften dies unterstützen. Bitte beachten Sie den Code unten für eine bessere Erklärung dessen, was ich in der schlecht gestellten Frage oben bedeute.

Public Class ExportTypes 
    Public Enum ExportType 
     Html = 1 
     Xml = 2 
     Xls = 4 
     Txt = 8 
     Pdf = 16 
     Rtf = 32 
    End Enum 
End Class 

Public Class baseModule 
    Private _SupportedExportTypes As ExportType = 0 
    Public Property SupportedExportTypes() As ExportType 
     Get 
      Return _SupportedExportTypes 
     End Get 
     Set(ByVal Value As ExportType) 
      _SupportedExportTypes = Value 
     End Set 
    End Property 
End Class 

Antwort

1

Sie werden wahrscheinlich eine UITypeEditor implementieren möchten. Überprüfen Sie this walkthrough, und tauschen Sie das erstellte Steuerelement im benutzerdefinierten Texteditor (in der Methodenüberschreibung EditValue) an aus, und übernehmen Sie die Zuweisung und das Abrufen der Enumerationswerte in und aus der Listbox. Dann schmücken Sie die Eigenschaft in Ihrem Benutzer-Steuerelement mit einem EditorAttribute zeigen Sie Ihre Typ-Editor, und Sie sollten gut gehen.

+0

Die obigen Links wiesen mich in die richtige Richtung. Glücklicherweise fand ich ein C# -Projekt, das die ganze Arbeit für mich erledigt hatte und führte das FlagsAttribute für Enums ein. http://www.codeproject.com/KB/edit/flagenumeditor.aspx?msg=1453046 – Dennis