Don't.
It's a bad idea - it locks the design of the two forms together, so you can't reuse them independently, or change one without considering the effects that could have on other forms.
Instead, use a combination of events and properties to let each form do the "donkey work" itself, and expose sufficient events and properties to allow the outside world to tell it what to do.
Exactly how depends on the "relationship" between the two forms.
Have a look at these, one of them will fit
The form that creates an instance of another:
MyForm mf = new MyForm();
mf.Show();
Is the "parent", the other form is the "child".
(This doesn't imply any formal MDI relationship)
Transferring information between two forms, Part 1: Parent to Child[
^]
Transferring information between two forms, Part 2: Child to Parent[
^]
Transferring information between two forms, Part 3: Child to Child[
^]