我试图更改集合属性在Winforms PropertyGrid中显示的方式。

而不是拥有

MyList | (Collection) [...]


并且必须按下按钮以显示CollectionEditor。
我正在将List扩展为ExpandableObjectConverter。但是,我仍然得到[...]按钮。所以现在看起来像这样。

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


最终,我想将其替换为“添加”按钮。我只是不知道从哪里开始。如果我理解正确,则当我按下[...]时,将显示CollectionEditor窗口。那我需要重写什么对象才能删除和添加自己的按钮。

谢谢

最佳答案

CollectionEditor继承一个新类,并覆盖GetEditStyle以返回None以防止显示“ ...”按钮。

同样不幸的是,您无法使用标准propertygrid添加Add按钮。您可以选择“ ...”,向下箭头或无按钮。

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


您可以使用以下属性将此新编辑器应用于属性:

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

关于c# - 从PropertyGrid集合属性中删除“…”按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13870268/

10-12 12:45
查看更多