Ideally, your forms really shouldn't know about eachother - but "forms based" programming usually means lots of intertangled junky code, especially if you're a novice programmer who picked up a rapid interface design environment.
Nothing wrong with that, but if you want to do more than small programs, you need to learn proper program design
. In the short term, passing form instances around to constructors and whatnot will work, but it's not good for modularity, re-use, or being able to comprehend your code a few months from now.
The first thing you need to learn is separating your GUI from your "real code". This means having pretty much all your logic separated from the GUI code, and never
directly referencing GUI controls from the logic/model code. Let your GUI controls observe
your program's model state, and let GUI events be very shallow things doing little else but delegating to instance calls on your model.