假设我想从表格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根本就不显示。
答案 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
。