你如何使CollectionEditor无模式?

时间:2015-10-06 21:41:01

标签: .net propertygrid collectioneditor

使用PropertyGrid,如何在单击列表参数时使打开的集合编辑器变为无模式而不是模态?

1 个答案:

答案 0 :(得分:0)

创建一种新类型的CollectionEditor:

public class SmartCollectionEditor : CollectionEditor
{

覆盖' EditValue'表单以无模式打开集合表单而不是模态,并删除接受和取消按钮,因为更改将立即生效。

public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
        CollectionForm collectionForm = base.CreateCollectionForm();
    collectionForm.EditValue = value;
    (collectionForm.AcceptButton as Button).Visible = false;
    (collectionForm.CancelButton as Button).Visible = false;
    collectionForm.Show();
    return value;
}

将要使用此类型的类型标记为将使PropertyGrid打开它的属性。

TypeDescriptor.AddAttributes(typeof(List<MyType>), new EditorAttribute(typeof(SmartCollectionEditor), typeof(UITypeEditor)));
相关问题