我想打开一个表单的多个实例,并以另一种形式或另一种形式的paenel显示它。该怎么做
答案 0 :(得分:19)
如果您没有使用MDI,您仍然可以将表单添加到其他表单或表单上的面板。
public Form1()
{
InitializeComponent();
Form2 embeddedForm = new Form2();
embeddedForm.TopLevel = false;
Controls.Add(embeddedForm);
embeddedForm.Show();
}
您需要将FormBorderStyle
设置为None
,除非您希望在表单中包含实际的可移动表单。
如果要执行此操作以创建可在多个表单中使用的可重用“模板”,则应考虑创建用户控件。不要与自定义控件混淆,后者适用于需要自己创建绘图而不是使用标准Windows控件集合时。
我不完全确定你的意图是什么,但是MDI(正如其他答案中提到的那样)可能实际上就是你想要的。
答案 1 :(得分:4)
你应该:
1)选择MDI,即接受GUI的完整MDI样式
或
2)根本没有嵌入表单,使用UserControls会更好(也更容易)。在做出选择之前尝试一下。如果您确实使用表单,请确保快捷键等都可以正常工作。
简短介绍:您像设计一样设计UserControl,然后将其放在Form上,就像任何其他Control一样。
答案 2 :(得分:1)
Form1 fChild = new Form1();
fChild.MdiParent = this;
fChild.Show();
父项的IsMDIContainer
应设为True。
有关完整教程,请参阅:Introduction to MDI Forms with C# @ CodeProject。
答案 3 :(得分:0)
我遇到了这个老线程,寻找类似的东西。如果其他人在寻找 - 我使用了Add New Item> Windows Forms>继承的形式。它允许您选择要嵌入的表单作为另一个表单的起点。这是VS 2015社区版。