代码之家  ›  专栏  ›  技术社区  ›  Tyler B

MDI子窗体未显示

  •  0
  • Tyler B  · 技术社区  · 7 年前

    Public Sub frmTransport_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        'keyboard shortcuts
        If e.KeyCode = Keys.F1 Then LaunchManual()
        If e.Control Then
            If e.KeyValue = Keys.R Then
                Me.WindowState = FormWindowState.Maximized
                Dim review As New frmReview
                review.MdiParent = Me
                review.Location = New Point(1175, 0)
                review.BringToFront()
                review.Show()
            End If
            ...
            ...
            End Sub
    

    enter image description here

    点(1175,0)是TabControl与黄色mdi容器相交的右上角。父窗体的isMdiContainer属性设置为True,当我运行此代码时,会触发frmReview的Load事件,但我没有看到子窗体:

    在我的另一个程序中,我使用相同的过程来显示MDI子窗体,效果很好。关于为什么会发生这种情况,有什么建议吗?

    提前感谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   djv    7 年前

    Dim mdiClient = Me.Controls.OfType(Of MdiClient).FirstOrDefault()
    Me.WindowState = FormWindowState.Maximized
    Dim review As New frmReview
    review.MdiParent = Me
    review.BringToFront()
    review.Show()
    ' order of Show() call changed so review has a size
    review.Location = New Point(mdiClient.Size.Width - review.Width, 0)