如何在c#中恢复允许单个应用程序实例的窗口?

时间:2011-08-10 05:51:19

标签: c# .net windows restore single-instance

我实现了允许使用以下线程

打开应用程序的单个实例

Restoring window from the system tray when allowing only one instance of that program

它正在工作,但是当前打开的窗口没有恢复。我没有使用MDI Parent概念。要导航表单,我使用了hide()和show()。 我尝试了上面的线程的codeproject链接。我创建了第一个实例,我在mainform.now我试图打开应用程序的第二个实例,它正在恢复同一个窗口。 导航到应用程序中的任何窗口后。如果我这样做,现在它将在新窗口中打开主窗体以及现有窗口。如果我关闭了任何窗口,则两者都在关闭。

如何修改代码来解决这个问题?

2 个答案:

答案 0 :(得分:0)

我没有接受你帖子中的链接。但我假设您使用Mutex只启动应用程序的一个实例,无论您尝试启动多少次。

如果它是一个子应用程序,那么你可以拥有该子对象的静态对象并继续使用ShowDialog调用(Winform)启动相同的对象。

答案 1 :(得分:0)

我通过此链接完成了我的任务

http://sanity-free.org/143/csharp_dotnet_single_instance_application.html

我将Form1代码放在所有表单中。现在工作正常..