2012-12-13 49 views
2

我試圖改變集合屬性出現在Winforms PropertyGrid中的方式。從PropertyGrid集合屬性中刪除「...」按鈕

而不必

MyList | (Collection) [...] 

而不必按按鈕,顯示CollectionEditor的。 我將List擴展爲ExpandableObjectConverter。但我仍然得到[...]按鈕。所以現在看起來像這樣。

[+] MyList | (2 Items) [...] 
    Item 1 | Value 
    Item 2 | Value 

最後,我想替換這個[...]爲添加按鈕。我只是不知道從哪裏開始。如果我理解正確,CollectionEditor是我按下[...]時顯示的窗口。那麼我需要重寫什麼對象才能刪除並添加我自己的按鈕。

感謝

回答

5

繼承了CollectionEditor一個新的類,並覆蓋GetEditStyle返回None,以防止呈現「...」按鈕。

同樣不幸的是,您不能使用標準propertygrid添加Add按鈕。您可以選擇「...」,向下箭頭或無按鈕。

[EditorAttribute(typeof(CustomEditor), typeof(UITypeEditor))] 

class CustomEditor : CollectionEditor 
{ 
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) 
    { 
    return UITypeEditorEditStyle.None; 
    } 
} 

您可以使用下面的屬性應用這種新的編輯器的屬性格式