2009-08-24 47 views
0

我有一個抽象用戶控件(baseModule),它具有我打算使用按位比較來確定該模塊支持哪些導出類型的屬性。在從baseModule派生的模塊的設計器中,我提供了一個能夠選擇單個值(Html,Xml等)的組合框,我希望顯示一個下拉選中的列表框,以便我可以選擇我想要的值。Designer中的按位屬性值

如何在VS2008中完成此操作?我見過其他屬性支持這一點。請參考下面的代碼,以更好地解釋我在上述問題不明確的問題中的含義。

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 

回答

1

您可能會想要實施UITypeEditor。檢查this walkthrough,並將自定義類型編輯器中的創建控件(在EditValue方法覆蓋中)交換爲CheckedListBox,並處理分配和檢索列表框中的枚舉值。然後用EditorAttribute指出你的用戶控件中的屬性,並指出你的類型編輯器,你應該很好。

+0

上面的鏈接指出我正確的方向。幸運的是,我找到了一個爲我完成所有工作的c#項目,併爲Enums引入了FlagsAttribute。 http://www.codeproject.com/KB/edit/flagenumeditor.aspx?msg=1453046 – Dennis 2009-08-25 14:06:08