c# winforms で .NET 3.5 を使用しています。これで私は MDI 子タブ コントロールを使用しています。フォームを開くと正常に動作し、正常に開きます。同じフォームをもう一度開くと、開きます。これは、タブの重複を意味します。
私のコードは以下のようなものです...
private void Main_MdiChildActivate(object sender, EventArgs e)
{
if (this.ActiveMdiChild == null)
tabForms.Visible = false; // If no any child form, hide tabControl
else
{
this.ActiveMdiChild.WindowState = FormWindowState.Maximized; // Child form always maximized
if (this.ActiveMdiChild.Tag == null)
{
TabPage tp = new TabPage(this.ActiveMdiChild.Text);
tp.Tag = this.ActiveMdiChild;
tp.Parent = tabForms;
tabForms.SelectedTab = tp;
this.ActiveMdiChild.Tag = tp;
this.ActiveMdiChild.FormClosed += new FormClosedEventHandler(ActiveMdiChild_FormClosed);
}
if (!tabForms.Visible) tabForms.Visible = true;
}
}
これで、 this.ActiveMdiChild.Tag が null の値を取るたびに、新しいフォームが何度も開かれます。これは、タブ コントロール内のフォームの重複を意味します