Ну, вы могли бы сделать:
Form.ShowDialog()
Это предотвратит нажатие пользователем кнопки на первой форме, так как вторая форма будет фокусироваться до тех пор, пока не будет закрыта.
Или вы могли бы сделать
Form2 form2 = null;
void button_click(object sender, EventArgs e)
{
if(form2 == null)
{
form2 = new Form2();
form2.Disposed += new EventHandler(f_Disposed);
form2.Show();
}
}
void f_Disposed(object sender, EventArgs e)
{
form2 = null;
}