c# - 防止显示一种形式的多个实例

标签 c# forms window

我正在开发一个应用程序,其中有一个主窗体和几个可以同时使用的其他窗体。当用户单击以打开另一个表单时,我想这样做,以便在表单已经打开的情况下单击该表单的按钮不会再次打开该表单。

showDialog 将无法工作,因为用户仍然需要访问主窗体上的控件。

这是我的帮助窗口代码,所有其他窗体的打开方式相同。

private void heToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form help = new help();
            help.Show();
        } 

最佳答案

或者,您可以使用应用程序的打开表单来查看它是否打开

btn_LaunchHelp(object o, EventArgs e)
{

   foreach (Form f in Application.OpenForms)
   {
       if (f is HelpForm)
       {
           f.Focus();
           return;
       }
   }

   new help().Show();
}

编辑:更清楚地说,这允许用户随时关闭帮助,并且比保存对帮助窗口的引用更容易管理。无需清理,无需维护。

关于c# - 防止显示一种形式的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2018272/

相关文章:

c# - lambda 运算符在 C# 通用 Windows 10 应用程序中是否有其他用途?

javascript - 如何将 session 值从 aspx(使用 javascript 存储)传递到 cs

php - 刷新页面或单击后退按钮时如何防止重新提交表单

java - 用 Java 截取指定小程序或程序的屏幕截图?

javascript - iPhone - Safari 父窗口焦点问题

c# - 如何像报纸一样将长文本分成几栏?

c# - 至少一个对象必须实现 IComparable order by

Jquery表单插件文件上传

php - Codeigniter 验证复选框组

image - OpenCV,如何在不重新初始化窗口的情况下显示一系列图像