关闭 SplitContainer 中的 mdi child
Closing mdi child in SplitContainer
我正在开发一个 winforms 应用程序,我正在将一个 mdi child 表单放入 splitcontainer.panel1。
当我想关闭当前的 mdi child 以打开另一个时,我无法获得 child 表格。
我正在使用此代码打开新的 child,但我想获取当前的 child 来关闭它:
Accueil accueil = new Accueil();
accueil.MdiParent = this;
accueil.TopLevel = false;
this.splitContainer1.Panel1.Controls.Add(accueil);
accueil.WindowState = FormWindowState.Maximized;
accueil.Size = this.splitContainer1.Panel1.ClientSize;
accueil.MinimizeBox = false;
accueil.MaximizeBox = false;
accueil.ControlBox = false;
accueil.Width = this.splitContainer1.Panel1.Width;
accueil.Height = this.splitContainer1.Panel1.Height;
accueil.Show();
将 MDI 子 window 放入拆分容器中没有任何意义。通过将窗体的 TopLevel 属性 设置为 false,您可以将窗体变成普通控件。最好不要丢失参考。但你可能会领先于:
while (splitContainer1.Panel1.Controls.Count > 0)
splitContainer1.Panel1.Controls[0].Dispose();
var accueil = new Accueil();
accueil.TopLevel = false;
accueil.Dock = DockStyle.Fill;
accueil.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
accueil.Visible = true;
this.splitContainer1.Panel1.Controls.Add(accueil);
请考虑改用 UserControl,这是最不可能造成长期混乱的明智方法。
我正在开发一个 winforms 应用程序,我正在将一个 mdi child 表单放入 splitcontainer.panel1。 当我想关闭当前的 mdi child 以打开另一个时,我无法获得 child 表格。 我正在使用此代码打开新的 child,但我想获取当前的 child 来关闭它:
Accueil accueil = new Accueil();
accueil.MdiParent = this;
accueil.TopLevel = false;
this.splitContainer1.Panel1.Controls.Add(accueil);
accueil.WindowState = FormWindowState.Maximized;
accueil.Size = this.splitContainer1.Panel1.ClientSize;
accueil.MinimizeBox = false;
accueil.MaximizeBox = false;
accueil.ControlBox = false;
accueil.Width = this.splitContainer1.Panel1.Width;
accueil.Height = this.splitContainer1.Panel1.Height;
accueil.Show();
将 MDI 子 window 放入拆分容器中没有任何意义。通过将窗体的 TopLevel 属性 设置为 false,您可以将窗体变成普通控件。最好不要丢失参考。但你可能会领先于:
while (splitContainer1.Panel1.Controls.Count > 0)
splitContainer1.Panel1.Controls[0].Dispose();
var accueil = new Accueil();
accueil.TopLevel = false;
accueil.Dock = DockStyle.Fill;
accueil.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
accueil.Visible = true;
this.splitContainer1.Panel1.Controls.Add(accueil);
请考虑改用 UserControl,这是最不可能造成长期混乱的明智方法。