C#获取我的表单类型以检查它是否已打开

时间:2014-09-06 04:26:10

标签: c#

我正在尝试创建一个通用方法来检查表单是否已打开。 但我不能使OfType工作,我试图使用我的参数变量的get类型。

    private void OpenForm(Form myForm)
    {

        if (!Application.OpenForms.OfType<GetType??>().Any())
        {
            myForm.MdiParent = this;
            myForm.WindowState = FormWindowState.Maximized;
            myForm.Show();
        }
    }

如何获取参数的类型并在OfType中使用?

1 个答案:

答案 0 :(得分:2)

使用类型参数声明您的方法,使其成为通用的。

private void OpenForm<T>(T myForm) where T : Form
{
    if (!Application.OpenForms.OfType<T>().Any())
    {
        myForm.MdiParent = this;
        myForm.WindowState = FormWindowState.Maximized;
        myForm.Show();
    }
}

有关通用方法的详细信息,请参阅http://msdn.microsoft.com/en-us/library/twcad0zb.aspx

上的MSDN