我正在开发一个winforms应用程序,并在splitcontainer.panel1中放置一个mdi子表单。如果要关闭当前的mdi子表以打开另一个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();发布于 2015-03-19 17:58:46
将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,这是最不可能长期混淆的明智方法。
https://stackoverflow.com/questions/29149943
复制相似问题