4

如果表格已经打开,我需要关注表格,否则我想打开新表格。

我已经尝试过这段代码来解决我的问题,但它会打开新表单,而不是关注已经打开的表单。

foreach (var item in Application.OpenForms)
        {
            Form form1 = item as Form ;
            if (form1 != null)
            {
                form1.Activate();
                break;
            }
            else
            {
                form1 = new Form ();
                form1.Show();
                break;
            }

        }
4

1 回答 1

8

我的猜测是问题在于您实际上只是在查看第一种形式-您在break声明的两个部分都有一个if声明......而且您也只是使用了Form几乎可以肯定不合适的一般类型。你可能想要:

var form = Application.OpenForms.OfType<MyForm>().FirstOrDefault();
if (form != null)
{
    form.Activate();
}
else
{
    new MyForm().Show();
}
于 2013-06-22T08:13:43.277 回答