如何防止第二次出现?

时间:2014-04-29 05:24:51

标签: c# winforms

我点击按钮调用我的表单:

var form = new GPZUWizardForm(
    Модуль.ИнформацияОСессии,
    Модуль.IngeoApplication,
    кодВИнгео,
    pzzMapObjectId,
    кодЗУ,
    номерСтраницы,
гпзу);
if (!form.Visible)
   Application.Run(form); 

当我再次点击按钮第二次显示时。
如何一次只显示一个表格?

4 个答案:

答案 0 :(得分:2)

这是因为您每次都在创建表单的新实例。

您可以使用单例模式。

http://www.dotnetperls.com/singleton

答案 1 :(得分:1)

如果form不为null,则创建一个新实例。

答案 2 :(得分:0)

如果您使用MDI父级,则在打开任何表单之前,您需要检查该表单是否已打开。如果它是打开的,首先关闭该实例并打开新实例。

答案 3 :(得分:0)

如果它不是MDI,则遍历每个打开的表单以查看它是否已打开并关闭它,如果这是您需要的。以下是如何执行此操作的快速示例:

for (int i = Application.OpenForms.Count - 1; i >= 0; i--)
        {
            if (Application.OpenForms[i].Name != "MyFormThatIDon'tWantToClose" && Application.OpenForms[i].Name != "TheOTherFormThatIDontWantToClose" )
                Application.OpenForms[i].Close();
        }