【问题标题】:How to enable add and delete button of collectioneditor如何启用collectioneditor的添加和删除按钮
【发布时间】:2017-09-29 13:56:51
【问题描述】:

我为我的集合类派生了一个集合编辑器。但是集合编辑器中的添加和删除按钮未启用,因此我无法通过设计器在集合中添加或删除实例。

这是我使用的代码,

[EditorAttribute(typeof(MyCollectionEditor), typeof(UITypeEditor))]
public MyCollection : IDisposable, ICollection
{  
    List<MyClass> list= new List<MyClass>();

    public Add(MyClass myclass)
    {

    }

    ......


 }


 public class MyCollectionEditor : CollectionEditor
 {
    public MyCollectionEditor ()
       : base(typeof(MyCollection))
    {
    }


    protected override Type CreateCollectionItemType()
    {
        return typeof(MyCollection);
    }

    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {
        return base.EditValue(context, provider, value);
    }
 }

谁能告诉我,如何在收藏编辑器中启用添加、删除按钮并使其适用于我的收藏?

问候,

【问题讨论】:

    标签: c# windows winforms collectioneditor


    【解决方案1】:

    试试这个:

     public class MyCollectionEditor : CollectionEditor
        {
            public MyCollectionEditor()
                : base(typeof(MyCollection))
            {
            }
    
            protected override CollectionForm CreateCollectionForm()
            {
                CollectionForm form = base.CreateCollectionForm();
                Type type = form.GetType();
                PropertyInfo propertyInfo = type.GetProperty("CollectionEditable", BindingFlags.Instance | BindingFlags.NonPublic);
                propertyInfo.SetValue(form, true);
                return form;
            }
    
            protected override Type CreateCollectionItemType()
            {
                return typeof(MyCollection);
            }
    
            public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
            {
                return base.EditValue(context, provider, value);
            }
        }
    

    这应该会启用“添加”和“删除”按钮。

    【讨论】:

    • type.GetProperty( "CollectionEditable" . 这里的 CustomEditable 是什么?
    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多