2012-09-25 55 views
1

我寫了一個自定義UITypeEditor的我每MSDN的演練http://msdn.microsoft.com/en-us/library/ms171840.aspx如何使用自定義的UITypeEditor進行枚舉?

型笑臉當用戶點擊省略號,我UITypeEditor的將推出一個模式對話框。

public class SmileyEditor : UITypeEditor 
{ 
    public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context) 
    { 
     return UITypeEditorEditStyle.Modal; 
    } 

的痛苦後,我發現它的工作原理,如果我喜歡的類型是A類,但如果它是一個枚舉。這是怎麼回事?

[Editor(typeof(SmileyEditor), typeof(System.Drawing.Design.UITypeEditor))] 
    public Smiley face { get; set; } 

如果笑臉類型是一個枚舉,那麼屬性網格不顯示省略號按鈕,只是一個下拉菜單。爲什麼?

回答

1

顯然,當系統類型編輯器存在時,PropertyGrid更喜歡它通過自定義編輯器。解決方法是使用TypeConvertorAttribute註釋您的類型,引用TypeConvertor來覆蓋方法GetStandardValuesSupported。見https://stackoverflow.com/a/4067173/284795