This is 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
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
I would also add that your design does not seem good. I would strongly advise to review it, but I cannot suggest any particular design as right now I don't know your goals. First of all, I would avoid multi-form design at all. In most cases, one but more complex form is quite enough, but it also more convenient for the users. What you have now as a separate form can become some container control. Such as
. You can hide one panel and show another one, you can activate different pages of
, one at a time, or even develop more complex dockable design (similar to that of Visual Studio). Please think about it.
Happy New Year!—SA