簡體   English   中英

在SplitContainer中關閉MDI子級

[英]Closing mdi child in 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();

將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,這是一種長期混亂最少的明智方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM