Yes, it would probably help if I said exactly what I am trying to do.
I have an MdiForm with 8 different child forms that each have a listbox filled with values from a database. When the program starts (from the MdiForm), only the first child form is displayed (form 0). After the user selects a value from the listbox (in this first child form), a new form (form 1) is displayed a few pixels down and over from the previous form (form 0). Form 1's listbox values depend on the previous selection from Form 0. The user then selects another value from the new form (form 1), and then a new form (form 2) is displayed with more values in a listbox. This activity continues...
Also, other than sharing the common listbox feature, each of these child forms is unique.
While the user is interacting with my program, they should have the option of returning to a previous ChildForm. I want them to be able to do so by clicking on the inactive windows in the background. For example, if they are currently viewing form 4, and they would like to return to form 2, all they would have to do is click on form 2 (which is inactive), then form 4 and form 3 would automatically dissappear.
The problem I have is that it's hard to refer to other forms unless I was storing a copy of them somewhere, which seems inefficient. Is there a way to scroll through the different MDIChildForms? If so, it might be possible to use your method. I am trying to get away from the Upgrade Wizard's method of using Default Instances (DefInstance) because that just seems like bad programming practice. In VB6, this would be easy, since I could just say Form4.Hide and Form3.Hide.
Thanks so much for the help thus far,
Mike