从PropertyGrid集合属性中删除“...”按钮

时间:2012-12-13 23:19:06

标签: c# collections propertygrid uitypeeditor

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

而不是

MyList | (Collection) [...]

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

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

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

由于

1 个答案:

答案 0 :(得分:5)

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

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

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

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

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