Here’s the code function that iterates through the open MDI children to see if a certain form is already open, before opening it:

Public Function IsOpen(ByVal nameForm As Form) As Boolean
        Dim isFound As Boolean = False
        For Each frm As Form In My.Application.OpenForms
            If frm.Name.Equals(nameForm) Then
                isFound = True
            End If
        Return isFound
End Function
    public bool IsOpen(Form nameForm) {
        bool isFound = false;
        foreach (Form frm in My.Application.OpenForms) {
            if (frm.Name.Equals(nameForm)) {
                isFound = true;
        return isFound;