You can simply do following steps to get your code works: - In the definition of each form (Form1.cs and Form2.cs for example), declare a property of type Form and name it as TargetForm or so. - In the main function in program.cs, you initiate the two forms at once, then keep a reference between them, like:
var form1 = new Form1();
var form2 = new Form2();
form1.TargetForm = form2;
form2.TargetForm = form1;
then hide one of them if necessary. - Update your event handling function, for example for button1.click in the form1:
private void button1_Click(object sender, EventArgs e)
{
this.TargetForm.Show();
this.TargetForm.Text = textBoxform1.Text;
Hide();
}