如果已打开,则将 MDIChild 窗体置于前面

OMG*_*TAL 1 vb.net forms mdichild bringtofront

我一直在努力让它工作...我在 MDIchild 表单上有一个按钮,可以打开另一个 MDIchild 表单,但如果该表单已经打开,它不会识别它并打开一个新表单,而不是将其带到正面。这是我得到的代码:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Dim MDIForm4 As New Form4
    MDIForm4.MdiParent = Me
    MDIForm4.Show()

End Sub
Run Code Online (Sandbox Code Playgroud)

这适用于打开新表单的按钮,然后我尝试添加以下内容:

    If Not Form4 Is Nothing Then
        Form4.BringToFront()
    End If
Run Code Online (Sandbox Code Playgroud)

但没有任何积极结果。有人有什么想法吗?

问候,

豪尔赫·布里托

Ste*_*eve 5

我通常是这样做的:

For Each f As Form In Application.OpenForms
  If TypeOf f Is frmTest Then
    f.Activate()
    Exit Sub
  End If
Next

Dim myChild As New frmTest 
myChild.MdiParent = Me
myChild.Show()
Run Code Online (Sandbox Code Playgroud)

请注意,这使用 Application.OpenForms,如果您只想要主窗体的子窗体,则可以使用 Me.MdiChildren(假设 Me = 此 MDI 窗体)。