2011-05-31 193 views
1

我只是在C#中學習自定義控件(窗體)我已經創建了下面的自定義控件,你可以看到我有一個叫做「Test」的propery,它應該被設置爲一個枚舉值EnumTest - 它的工作發現,除了我想是控制的用戶選擇多於一個屬性,因此「測試」屬性可以是:控制自定義屬性

Test = EnumTest.TopLeft | EnumTest.TopRight; 

這是可能的 - 如果是這樣,如何爲屬性中的下拉框只允許我在列表中選擇一個枚舉。此外,如果可能的話,我需要檢測,如果用戶將其設置爲「無」,那麼這將是一個單一的選擇,而不是多選。

namespace WindowsFormsApplication1 
{ 
    public partial class myControl1 : Control 
    { 
     public enum EnumTest 
     { 
      None = 0, 
      TopLeft = 1, 
      TopRight = 2, 
      BottomLeft = 4, 
      BottomRight = 8, 
      All = TopLeft | TopRight | BottomLeft | BottomRight 
     } 
     public UserControl1() { 
      InitializeComponent(); 
     } 

     public EnumTest Test { 
      get; 
      set; 
     } 
    } 
} 

非常感謝您的任何幫助。

回答

2

[Flags]添加到您的枚舉中,以表明它接受多個值。

我不記得屬性網格是否知道[Flags]枚舉;如果沒有,你需要編寫一個UITypeEditor。

+0

我已經添加了[標誌]的枚舉,但在屬性窗口(在設計模式)我只能選擇一個選項來設置它 - 我想要的東西像「錨」,除了用於選擇錨的圖形界面部分。 – harag 2011-05-31 18:02:15

+0

然後你需要一個UITypeEditor。 – SLaks 2011-05-31 18:32:07

+0

我會去尋找一些UITypeEditor教程。感謝您指點我正確的方向。 – harag 2011-05-31 18:51:43

0

沒有指定標誌枚舉的枚舉屬性嗎?稍等片刻,我正在考慮...

嘿,你知道些什麼:他們稱屬性爲[Flags]!這應該很容易記住下一次...