2011-10-01 24 views
1

我工作的一個用戶自定義的按鈕,這有這樣兩個自定義屬性:用戶定義的控件及其屬性

public enum FirstType 
{ 
    egg, 
    leg 
} 
// first property: 
public FirstType FirstProperty { get; set; } 

,我有一個基類,這個基類的5派生類,而第二個屬性會參考這些5一個,

//second property 
public BaseClass SecondProperty { get; set; } 

現在我的問題是:我怎麼能有一個下拉這5類名單的第二個屬性中properties window像第一個?可能嗎?

+1

只是它是灰色的,沒有默認選擇 – Mouliyan

回答

1

OK,我使用enum來解決我的問題,首先是這個枚舉類型的屬性,然後在中調用那些類財產的聲明。謝謝大家。

1

對於您需要創建自己的自定義TypeConverter和覆蓋GetStandardValues

,物業這是你的財產:

[TypeConverter(typeof(MyTypeConverter)] 
public BaseClass SecondProperty { get; set; } 

這是你的類型轉換器:

public class MyTypeConverter : TypeConverter 
{ 
    ... 

    public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
    { 
     return true; 
    } 

    /// <summary> 
    /// select only from list 
    /// </summary> 
    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 
    { 
     return true; 
    } 

    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 
    { 
     return new StandardValuesCollection(/* list of derived classes */); 
    } 
} 
相關問題