通过c#中桌面应用程序中的链接标签在面板中打开多个表单

时间:2014-01-23 07:00:50

标签: c# winforms

我的问题是..我可以在面板BY中添加表单。

 Form2 fm2 = new Form2();
 fm2.TopLevel = false;
 fm2.Dock = DockStyle.Fill;
 panel1.Controls.Add(fm2);
 fm2.Show();

但是当我尝试从面板中删除表单时。由

panel1.Controls.Remove(fm2);

没什么工作。这段代码从面板中删除FORM ..

2 个答案:

答案 0 :(得分:1)

实际上,即使没有明确表单,您的代码也应该可以正常工作。确保fm2指向您添加的表格:

Form2 fm2 = panel1.Controls.OfType<Form2>().First();
panel1.Controls.Remove(fm2);

更新:同样,您应该删除已添加到面板的Form2的完全相同的实例。创建新实例并从面板中删除它不会产生任何效果,因为新实例未添加到面板中,原始实例仍然存在于面板中。

如果您只想将其用作表单的主机,我建议您从面板中删除所有控件。只需致电panel1.Controls.Clear()

答案 1 :(得分:0)

您可以尝试关闭表单,然后从Panel中删除它:

fm2.Close(); //Or fm2.Visible = false;
panel1.Controls.Remove(fm2);