Sometimes in the myriad of forms, it can become quite difficult figuring out whether or not a form has already been loaded and if is still open or not. To determine if a form has already been loaded into memory, you can use the following procedure that makes use of LINQ which queries the Applicaction.OpenForms collection:
private void CheckForms()
{
var frm = Application.OpenForms.Cast().Where(x = x.Name == "Form1").FirstOrDefault();
if (null != frm)
{
frm.Show();
frm.Activate();
frm.BringToFront();
}
else
{
Form1 frm = new Form1;
frm.Show();
frm.Activate();
frm.BringToFront();
}
}