C#表单中的Winform表单

时间:2009-08-29 12:23:32

标签: c# winforms

我想打开一个表单的多个实例,并以另一种形式或另一种形式的paenel显示它。该怎么做

4 个答案:

答案 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社区版。