2017-02-13 18 views
0

私のコントロールには、TabPageタイプの子コントロールコレクションがあります。そのインデックスに従って名前を割り当てる新しい子インスタンスを作成したいと思います。これを行うには、コレクションの現在の状態を知る必要があります。しかしどうですか? CreateInstanceは、コレクションの参照ではなく項目の種類のみを指定します。デザイナコレクションエディタ、現在のインデックスを知る方法?

public class MyEditor : CollectionEditor 
{ 
    public MyEditor(Type type) : base(type) 
    { 
    } 

    protected override Type[] CreateNewItemTypes() 
    { 
     return new[] 
     { 
      typeof(TabPage) 
     }; 
    } 

    protected override object CreateInstance(Type itemType) 
    { 
     return new TabPage("Page 1"); //<-- How to know current index? 
    } 
} 

答えて

0

例がないので、私は.NET Frameworkを逆コンパイルして、Microsoftがどのようにしたのか見ていました。 MicrosoftのTabPageCollectionEditorは「System.Design.dll」内にありました。

あなたはこのようなコレクションを持っているコントロールアクセスできます

var control = Context?.Instance as MyTabControl; 

を次に、現在のインデックスを取得するには些細なことだった:

int currentIndex = control.TabPages.Count; 
関連する問題