我的控件有一个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 :(得分:0)
由于缺少示例,我使用反编译.NET Framework并了解Microsoft如何做到这一点。微软的TabPageCollectionEditor位于“System.Design.dll”中。
您可以访问具有以下集合的控件:
var control = Context?.Instance as MyTabControl;
然后获取当前索引是一件微不足道的事情:
int currentIndex = control.TabPages.Count;