Get Form 检查自身是否已经打开

Get Form to check if itself is already open

我有两个表单,第二个表单中有一个方法。我希望仅在未打开第二个表单时才执行一部分代码。我必须在 if 语句中写入什么才能让表单检查它是否已打开?我只找到了如何检查另一个表单是否打开而不是表单本身的解决方案。

试试下面的代码:-

 Form2 frm2 = new Form2();
 if (IsOpened(frm2.Text))
  {
  }

private bool IsOpened(string name)
{
    FormCollection fc = Application.OpenForms;
    foreach (Form frm in fc)
    {
        if (frm.Text == name)
        {
            return true;
        }
    }
    return false;
}

更新:-

Dmitry Bychenko 建议的 Linq 代码:-

if (Application.OpenForms.OfType<Form>().Any(form => form.Text == frm2.Text))