如何在win app中加载表单面板其他表单

我用C#创建一个Windows窗体应用程序。

我有一个通用的表格和一个小组。

我使用代码在这个面板中显示subForm:

SubForm objForm= SubForm.InstanceForm(); this.IsMdiContainer = true; objForm.TopLevel = false; pnlSubSystem.Controls.Add(objForm); objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; objForm.Dock = DockStyle.Fill; objForm.Show(); 

现在我想在这个面板的subForm上显示其他forms,但我不知道该怎么做。

我认为您的问题通过此代码解决:

  SubForm objForm= SubForm.InstanceForm(); objForm.TopLevel = false; pnlSubSystem.Controls.Add(objForm); objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; objForm.Dock = DockStyle.Fill; objForm.Show(); 

据我了解,你非常接近。 要将另一个表单添加到subform尝试使用相同的代码:

 pnlSubSystem.Controls.Add(objForm); 

use(其中objForm2是新的subForm

 SubForm objForm2 = new SubForm(); objForm.Controls.Add(objForm2); 

因为你已经得到了通过删除this.IsMdiContainer = true;的答案this.IsMdiContainer = true; 你的代码运行得很好。 因为IsMdiContainer属性将窗体的显示和行为更改为MDI父窗体。 当此属性设置为true ,表单将显示一个浸没的客户区域。 分配给父表单的所有MDI子表单都显示在其客户区域中。

 SubForm objForm= SubForm.InstanceForm(); objForm.TopLevel = false; pnlSubSystem.Controls.Add(objForm); objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; objForm.Dock = DockStyle.Fill; objForm.Show(); 

objForm表单,它将成为子表单的模板。 每次要为应用程序创建新的子窗口时,都可以创建此模板表单的新实例,并将第一个表单作为其父表单。

 //Create a new instance of the MDI child template form SubForm objForm = new SubForm(); //Set parent form for the child window objForm.MdiParent=this; // Last ObjForm or something //Display the child window objForm.Show(); 

其他方式:

 objForm.TopLevel = false; objForm.Parent = pnlSubSystem; objForm.Show(); 

这是我在Stackoverflow上的第一个答案。