Try this.
Add a button to frmMain, and handle it's Click event:
private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.ShowDialog();
Form2 f2 = new Form2();
f2.ShowDialog();
}
That will create a new instance of Form1, and display it. When the Form1 is closed, the frmMain will continue and a new Form2 will be displayed.
Then try this:
private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.Show();
Form2 f2 = new Form2();
f2.Show();
}
That will show a new instance of Form1 and Form2 - but it will not wait until they close, frmMain will continue to work.