First of all, this code has amazing abuse. To create a form instance of the type
Form3
, you need to do
Form myForm = new Form3();
nothing else. Using
Activator
the way you do it totally pointless and totally unsupportable: should you ever change the type name, the compiler won't detect that "Form3" in
Type.GetType("Form3")
is misspelled. Besides, you should never use auto-generated names like
Form3
or btnProfile_Click. All names should be semantically sensitive. How do you think why are you given a refactorizatoin engine with Visual Studio?
Now, child-parent relationships between forms are effectively disabled. None of your forms is a parent of any other forms. If you try to set the
Parent
property for a form, it will through exception (there is a documented work-around, but I don't know how it can be useful for people show don't want doing any abuse). But you really need to use the property
Owner
, which is related to Z-order of forms of the same application: it keeps all such forms together in Z-order, which is important for UI integrity. Anyway, it has noting to do with your main problem.
It looks like your problem is related to the popular question about form collaboration. The most robust solution is implementation of an appropriate interface in form class and passing the interface reference instead of reference to a "whole instance" of a Form. Please see my past solution for more detail:
How to copy all the items between listboxes in two forms[
^].
Please also see other solutions in this discussion. If the application is simple enough, the solution could be as simple as declaring of some
internal
property in one form and passing a reference to the instance of one form to the instance of another form. For more complex projects, such violation of strictly encapsulated style and
loose coupling could add up the the
accidental complexity of the code and invite mistakes, so the well-encapsulated solution would be preferable.
Please see also:
http://en.wikipedia.org/wiki/Accidental_complexity[
^],
http://en.wikipedia.org/wiki/Loose_coupling[
^].
—SA