How to Use the Forms Collection to Unload All MDI Child Forms

ID: Q97620


The information in this article applies to:
  • Microsoft Visual Basic Standard and Professional Editions for Windows, versions 2.0, 3.0


SUMMARY

You can use Visual Basic code to close all MDI children by using the forms collection. The forms collection contains references to all forms -- the MDI parent form, MDI children forms, and non-MDI forms. To unload or close all MDI forms, loop through the forms collection testing the value of the MDIChild property on each form. If the MDIChild property is true, unload the form.


MORE INFORMATION

Steps to Create Example

  1. Start Visual Basic or from the File menu, choose New Project (ALT, F, N) if Visual Basic is already running. Form1 is created by default.


  2. Change the MDIChild property of Form1 to True.


  3. From the File menu, choose New MDI Form (Alt+F+I). This creates the MDIForm1 MDI parent form.


  4. From the Window menu, choose Menu Design (ALT+W+M), and create the following menu with two menu items on MDIForm1:
    
       Caption     Name         Indent
       ------------------------------
       File        mFile       no
       New         mNew        once
       Close All   mCloseAll   once
     


  5. Add the following code to the general declarations section of MDIForm1.
    
       Dim ChildCount As Integer
     


  6. Add the following code to the mNew event handler.
    
       Sub mNew_Click ()
          Dim newWindow As New Form1
          ChildCount = ChildCount + 1
          newWindow.Caption = "Child " & Str$(ChildCount)
          newWindow.Show
       End Sub
     


  7. Add the following code to the mCloseAll_Click event handler.
    
       Sub mCloseAll_Click ()
          i = 1
          Do While i < Forms.Count
             If forms(i).MDIChild Then
                ' *** Do not increment i% since a form was unloaded
                Unload forms(i)
             Else
                ' Form isn't an MDI child so go to the next form
                i = i + 1
            End If
          Loop
          ChildCount = 0
       End Sub
     


  8. From the Options menu, choose Project. Make MDIForm1 the Start Up Form.


  9. From the Run menu, choose Start (ALT, R, S) to run the program.


  10. From the File menu on MDIForm1, choose New. Repeat this several times.


  11. From the File menu on MDIForm1, choose Close All to unload all the MDI children.


Additional query words: 2.00 3.00

Keywords :
Version :
Platform :
Issue type :


Last Reviewed: June 9, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.