2017-02-13 74 views
0

我的控件有一個TabPage類型的子控件集合。我想創建一個新的子實例根據其索引分配一個名稱。爲此,我需要知道集合的當前狀態。但是如何? CreateInstance只給出項目類型,而不是收集參考。Designer Collection編輯器,如何知道當前索引?

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框架並查看Microsoft如何執行此操作的方法。微軟的TabPageCollectionEditor在「System.Design.dll」中。

您可以訪問它有這樣的集合的控件:

var control = Context?.Instance as MyTabControl; 

然後,它是一件微不足道的小事來獲取當前指數:

int currentIndex = control.TabPages.Count; 
相關問題