如何检查表单的实例是否已存在?

时间:2010-09-01 13:18:51

标签: c# winforms plugins rhino

我正在为Rhino开发一个插件,当我运行命令启动插件时,我执行以下操作。它会创建一个启动表单,上面有一个计时器,2秒后我会加载另一个表单。

如果我错误地再次单击插件图标,它会创建另一个spash表单实例,再次加载该插件。

我如何防止这种情况?

这是制作表单的代码。

public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
            {

                Splash Splash = new Splash();
                Splash.Show();

                return IRhinoCommand.result.success;
            }

1 个答案:

答案 0 :(得分:4)

public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
{
    if (!Application.OpenForms.OfType<Splash>().Any())
    {
        new Thread(() => Application.Run(new Splash())).Start();
    }
    return IRhinoCommand.result.success;
}