创建一个普通的MDI形式



我正在开发一个应用程序,在这个应用程序中,我必须显示不同的表单堆叠在一起。由于一些限制,我不能使用MDI,而且它有很多问题。

我能得到我想要的,但有一个问题。表单将被堆叠,但它们不会保留在父表单中。让我们举个例子。结构是这样的。1)有表格a(我的父母表格)2)第二个表格"B"在表格"a"的按钮点击事件中打开。(注意:B.ShowInTaskBar = False)3)再次,第三个表格"C"在表格"B"的按钮点击事件上打开。(注:C.ShowInTaskBar = False)

现在,当我最小化形式A时,它被最小化但形式B和C,保持原样。我想让它们同时最小化。我希望形式B和C应该保持作为形式a的子形式

只使用MDI表单。FormBorderStyle对MDI患儿的价值没有技术限制。请记住,将父窗体的IsMdiContainer属性设置为true,然后在调用Show()之前将子窗体的MdiParent属性设置为父窗体。

编辑:

我不太明白你说的堆叠是什么意思。你可以很容易地控制子元素的位置,如果这就是你的意思:

public void ShowChildren()
{
    Child child1 = new Child();
    Child child2 = new Child();
    child1.MdiParent = this;
    child2.MdiParent = this;
    child1.Show();
    child2.Show();
    child1.Size = new System.Drawing.Size(100, 100);
    child1.Location = new System.Drawing.Point(0, 0);
    child2.Size = new System.Drawing.Size(100, 100);
    child2.Location = new System.Drawing.Point(0, 100);
}

编辑# 2:您正在尝试嵌套表单吗?如果是这样,您可以使父级为正常形式,并在父级中放置UserControl a。然后将 UserControlb放在 UserControla中。允许用户移动这些边框会变得更加困难,但如果您已经想要没有边框,这可能对您来说不是问题。

public void formMain_buttonShowA_click() {
    FormA formA = new FormA();
    formA.ShowDialog();
}
public void formA_buttonShowB_click() {
   FormB formB = new FormB();
   formB.ShowDialog();
}

相关内容

  • 没有找到相关文章

最新更新