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

发布于 2024-09-16 20:25:01 字数 433 浏览 3 评论 0原文

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

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

我该如何防止这种情况?

这是制作表单的代码。

public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
            {

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

                return IRhinoCommand.result.success;
            }

Im developing a plugin for Rhino, and when i run the command starting plugin i carries out the following. It creates a splash form, which has a timer on it, and after 2sec i loads another form.

If i by mistake click the plugin-icon again, it creates another instance of the spash form, which loads the plugin again.

How do i prevent this?

This is the code that makes the form.

public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
            {

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

                return IRhinoCommand.result.success;
            }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欢烬 2024-09-23 20:25:01
public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
{
    if (!Application.OpenForms.OfType<Splash>().Any())
    {
        new Thread(() => Application.Run(new Splash())).Start();
    }
    return IRhinoCommand.result.success;
}
public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
{
    if (!Application.OpenForms.OfType<Splash>().Any())
    {
        new Thread(() => Application.Run(new Splash())).Start();
    }
    return IRhinoCommand.result.success;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文