Windows窗体 - 包括另一个窗口中的窗口

时间:2009-12-31 15:56:03

标签: windows winforms

我有一个带有一个主窗口的应用程序。在窗口中,单击生成其他窗口的按钮。我想知道是否有人知道如何将这些衍生的窗口保留在原始窗口内并且不能让它被拖出它?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

更简单的方法(更可取)是使主表单成为MDI容器。您可以在设计器中通过在主窗体的属性窗口中将IsMdiContainer设置为true来设置它。要将表单添加到MDI父级,只需将新表单的MdiParent属性设置为主表单的实例。例如,假设此代码位于MDI表单上的按钮中:

void button1_Click(object sender, EventArgs e)
{
    Form newForm = new Form(); // obviously you'd use your own Form class here

    newForm.MdiParent = this;

    newForm.Show();
}

但是,您可以添加一个新表单作为现有表单的子表单,它的行为与任何其他控件一样,但您必须设置TopLevel属性在显示表单之前为false 。我们的代码看起来像这样:

void button1_Click(object sender, EventArgs e)
{
    Form newForm = new Form(); // obviously you'd use your own Form class here

    newForm.TopLevel = false;
    newForm.Parent = this;

    newForm.Show();
}

MDI方法通常被推荐,主要是因为这正是该功能的设计目的:拥有一个管理零个或多个子表单的容器表单。