I think you should create usercontrols, not different forms. You can then add your custom controls to your main panel according to your selection in the menu.
Initially something like below
this.panel.Controls.Clear(); this.panel.Controls.Add(new UserControl_For_Form1());
As soon as the user clicks on another choice in the menu.
this.panel.Controls.Clear(); this.panel.Controls.Add(new UserControl_For_Form2());
If you really want to use the way you are currently using. Below is the code.
Add the Form1 property for form 2 and parse the instance of form1 in Form2 with your constructor.
public partial class Form2 : Form { private Form1 form1; public Form2(Form1 myForm) { InitializeComponent(); form1 = myForm; } }
Show form2 and hide the form.
private void Check_Click(object sender, EventArgs e) { Form2 Check= new Form2(this); Check.Show(); Hide(); }
In the closing event of form 2, you can now show an instance of form1, which is in form2, and close form 2.
Using an MDI form is another option for you.
source share