2017-05-02 25 views
0

コレクションクラスのコレクションエディタを派生しました。コレクションエディタの追加と削除のボタンが有効になっていないため、デザイナを使用してコレクションのインスタンスを追加または削除できませんでした。ここでコレクションの追加と削除ボタンを有効にする方法

は、私が使用しているコードで、

[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); 
    } 
} 

誰もが、追加可能コレクションエディタでボタンを削除し、それが私のコレクションのために働くようにする方法を、私に知らせていただけますか?これは、 "追加" ボタンを "削除" を有効にする必要があり

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); 
     } 
    } 

よろしく、

答えて

0

はこれを試してみてください。

+0

type.GetProperty( "CollectionEditable"。ここでCustomEditableは何ですか? – Amal

関連する問題