MDI Fenster suchen und anzeigen

  • im Codebeispiel wird anhand eines selber vergebenen Tag-Wertes (z.B. DB-Id-Wert [Primärschlüssel]) einer TreeViewNode ein MDI-Fenster gesucht und angezeigt
Private Sub miGraph_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miGraph.Click
    Dim bNotFound As Boolean = True
    Dim FMonthData As frmMonth ' das gesuchte Formular

    If Not tvObjects.SelectedNode Is Nothing Then
        ' MDI-Child-Liste durchsuchen
        For i As Integer = 0 To frmMain.MdiChildren.Length - 1
            ' wenn die Tags übereinstimmen, dann ist das Fenster schonmal anhand der Tag_ID gefunden
            If frmMain.MdiChildren(i).Tag = tvObjects.SelectedNode.Tag Then
                ' auf den Typ FMonthData casten
                FMonthData = TryCast(frmMain.MdiChildren(i), frmMonth)
                If Not FMonthData Is Nothing Then
                    ' wenn der cast gültig, dann Fenster anzeigen
                    FMonthData.BringToFront()
                    bNotFound = False
                    Exit For
                End If
            End If
        Next

        If bNotFound Then
            ' wenn Fenster nicht in der MDI-Child-Liste vorhanden, dann neues erzeugen
            FMonthData = New frmMonth

            With FMonthData
                .MdiParent = frmMain
                ' Tag-Wert übergeben, für spätere Fenster-Suche
                .Tag = tvObjects.SelectedNode.Tag
                .Text = "Testfenster"
                .Show()
            End With
        End If
    End If
End Sub