如何在同一窗口中打开Windows窗体

时间:2014-11-01 04:52:49

标签: vb.net mdi

假设我想从表格A打开表格B,我在表格A中使用以下代码:

FormB.Show()

Me.Close()

这导致表格A的窗口关闭和表格B的窗口打开。这是非常具有破坏性的,因此可以在表格A的窗口中打开表格B吗?我读过一些关于MdiContainer的内容,所以我已经做了以下事情:

在Visual Studio中处理新的Windows窗体,将其命名为MainForm并将其isMdiContainer属性设置为True。 - 打开Windows窗体时使用以下代码:

FormB.MdiParent = MainForm
FormB.Show()

Me.Close()

但这导致FormB根本没有出现。

我该怎么做?

- 编辑 -

根据以下回复,似乎普遍的共识是排除Me.Close()。我已经这样做了,但问题似乎不是Me.Close(),而是FormB.MdiParent = MainForm。出于某种原因,每当我在FormB的Load函数中包含该行时,FormB根本就不显示。

4 个答案:

答案 0 :(得分:2)

所以你有2个表格,让我们说" MainForm和Form1"

在你的mainForm中添加代码" Me.IsMdiContainer = True"在表单加载事件中 将MdiContainer设置为表单。

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.IsMdiContainer = True
End Sub

按一个按钮打开第二个表格。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Form1.Show()
End Sub

然后在form1 loadevent中添加代码" Me.MdiParent = MainForm"

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.MdiParent = MainForm
End Sub

然后它可以工作"并且不要打电话给我。然后你关闭表格。"

答案 1 :(得分:0)

我认为你想一次展示两种形式。然后为那个Don不要使用表格A的.Close()方法。如果你想要的话还有另一件事,当表格B被称为表格A时,可以使用其.Hide()方法隐藏。您也可以使用主窗体对象从子窗体执行相同的操作,以显示主窗体和隐藏子窗体。

答案 2 :(得分:0)

从FormA开始,执行以下操作:

FormB frmB = new FormB()
frmB.MdiParent = Me
frmB.Show()

请勿使用Me.Close()关闭当前表单!

答案 3 :(得分:0)

您可以将object面板container用作新form