This has been asked many many times and received enough answers to help you out.
(Which is why you got a downvote from somebody. You are expected to do a proper search before you ask anything!)
With the setup you described you can go this way: Hand a reference to the main form to each child form in the constructor. Keep this reference and use it to access both the main form and via its many form handles all the other child forms.
Form23 form23 = new Form23(this);
form23.Show();
And in Form23..:
// a class variable:
public Form1 form1;
public Form23(Form1 form1_);
{
InitializeComponent();
form1 = form1_;
}
Now you can use form1 as a hub and reference each sibling like this:
form1.form22.somePublicDataFieldOrWhatever...