我正在使用MDI应用程序,我想知道在全屏主窗口中打开子窗体的子窗体的最佳方法是什么?其中一些子表单是根据实例创建的,因此每次打开实例时我都不知道如何引用父表单。
例如,我有我的主要父表格(frmMain)。 然后,我使用以下代码打开子表单(Form2):
frmMain:
Dim frm As New Form2
frm.MdiParent = Me
frm.WindowState = FormWindowState.Maximized
frm.Show()
窗体2:
Private Sub frmAssetTracker_Load(sender As Object, e As EventArgs) Handles MyBase.Load
fMain = DirectCast(Me.MdiParent, frmMain)
Me.MaximizeBox = False
Me.WindowState = FormWindowState.Normal
Me.WindowState = FormWindowState.Maximized
End Sub
这样可以正常工作,并在父表单中为我提供全屏子项。但是,如何在全屏等情况下打开Form2的子项?
那么,我如何使用frmMain作为父级从Form2打开Form3?
更新
我的frmMain在窗口顶部有一个停靠元素,为整个应用程序提供一个按钮栏。当我使用下面的代码从Parent打开子表单时,它最大化了停靠元素周围的表单。然而,当我尝试打开一个孩子形式的孩子时,它会创造一个“跳跃”的孩子。形式从正常状态变为最大化状态。如果我删除Me.WindowState = FormWindowState.Normal
,则子表单位于父表单的停靠元素后面。
答案 0 :(得分:0)
尝试在Form2中使用代码
Dim frm As New Form3
frm.MdiParent = Me.MdiParent
frm.WindowState = FormWindowState.Maximized
frm.Dock=DockStyle.Fill
frm.Show()