Because you declare a new instance of form1 and immediately close it:
form1 frm= new form1();
frm.close();
Nothing happens - it doesn't close because you never opened it.
If you are running in form1 when you close the current instance (which is what you appear to be trying to do) then your app will shut down.
Try this instead:
this.Hide();
Form2 frm2 = new Form2():
Form2.ShowDialog();
this.Show();
It will make it look as if your form disappears and the new form appears.
You don't actually need the
this
part of Hide or Show - I just put them in to show you what they were acting on.