The easiest way is to keep a form level variable which refers to your open instance. When the user requests Form2, check, and if it is not null, then ask and close if necessary.
Form1 openForm1 = null;
...
openForm1 = new Form1();
openForm1.Show();
...
if (openForm1 != null)
{
if (MessageBox.Show("Close it?") == DialogResult.OK)
{
openForm1.Close();
Form2 f = new Form2();
...
}
}
You will also want to handle the Form1.FormClosed event to set the openForm1 variable to null again.