-1
私はTabPageをカスタマイズしましたが、次のような問題があることがわかりました:C#TabControl、カスタムTabPagesコレクションエディタの作成方法
まず、2つのカスタムTabPageを作成しました。
しかし、そこに私が文書を閉じ、問題があって、私は、文書を再び開く:
見て、のTabPageが4になるが、私は「designer.cs」文書で問題を発見しました。
//
// blK_TabControl1
//
this.blK_TabControl1.Controls.Add(this.blK_TabPage6);
this.blK_TabControl1.Controls.Add(this.blK_TabPage7);
this.blK_TabControl1.Location = new System.Drawing.Point(4, 12);
this.blK_TabControl1.Name = "blK_TabControl1";
this.blK_TabControl1.SelectedIndex = 0;
this.blK_TabControl1.Size = new System.Drawing.Size(604, 196);
this.blK_TabControl1.TabIndex = 14;
this.blK_TabControl1.TabPages.AddRange(new System.Windows.Forms.TabPage[] {
this.blK_TabPage6,
this.blK_TabPage7});
通常のTabControlののTabPageを追加した後、何も "TabPages.AddRange()" 私はそれを修正することができますどのようにこのコードは、ありませんか?事前に
public class BLK_TabPageCollectionEditor : CollectionEditor
{
public BLK_TabPageCollectionEditor(Type type)
: base(type)
{
}
protected override bool CanSelectMultipleInstances()
{
return false;
}
protected override Type CreateCollectionItemType()
{
return typeof(BLK_TabPage);
}
protected override object CreateInstance(Type itemType)
{
BLK_TabPage tabPage = (BLK_TabPage)itemType.Assembly.CreateInstance(itemType.FullName);
IDesignerHost host = (IDesignerHost)this.GetService(typeof(IDesignerHost));
host.Container.Add(tabPage);
//this.Context.Container.Add(tabPage);
tabPage.Text = tabPage.Name;
return tabPage;
}
}
public class BLK_TabControl : TabControl
{
[EditorAttribute(typeof(BLK_TabPageCollectionEditor), typeof(UITypeEditor))]
[MergableProperty(false)]
public new TabControl.TabPageCollection TabPages
{
get
{
return base.TabPages;
}
}
}
ありがとう:
は、ここに私のコードです。
あなたが代わりにあなたの第二の画像と画像のコードブロックを使用して検討してください。しかし、デザイナーで生成されたコードと、あなたのイメージの説明に基づいて、私が提案することができる唯一のことは、
TabPages
プロパティのシリアル化を非表示にすることです。 –