关闭SplitContainer中的mdi子项

时间:2015-03-19 16:24:43

标签: c# winforms mdichild splitcontainer

我正在开发一个winforms应用程序,我将一个mdi子表单放在splitcontainer.panel1中。 当我想关闭当前的mdi孩子打开另一个孩子时,我无法得到孩子的表格。 我正在使用此代码打开一个新的孩子,但我想让当前的孩子关闭它:

            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();

1 个答案:

答案 0 :(得分:1)

将MDI子窗口放入拆分容器中没有任何意义。您通过将其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,这是一种理智的方法,最不可能是长期的混乱。