我正在开发一个应用程序,在这个应用程序中,我必须显示不同的表单堆叠在一起。由于一些限制,我不能使用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。然后将 UserControl
b放在 UserControl
a中。允许用户移动这些边框会变得更加困难,但如果您已经想要没有边框,这可能对您来说不是问题。
public void formMain_buttonShowA_click() {
FormA formA = new FormA();
formA.ShowDialog();
}
public void formA_buttonShowB_click() {
FormB formB = new FormB();
formB.ShowDialog();
}