我创建了一个应用程序,它在启动时会在系统托盘中启动。我使用下面的帖子来实现这一点: How to start WinForm app minimized to tray?
此应用程序也只允许单个实例运行: http://www.codeproject.com/Articles/32908/C-Single-Instance-App-With-the-Ability-To-Restore
我遇到的问题是当我第一次启动应用程序时它最小化到系统托盘,但是如果我单击桌面图标它不会出现。我必须单击托盘中的图标才能恢复应用程序。如果我再次将它最小化,然后单击它出现的桌面图标。
这是我第二次尝试 winform 应用程序,是否与 SetVisibleCore 有关?
任何指向正确方向的指示都会很棒。
最佳答案
如果你让你的 WinForms 应用程序成为单例,那么让最小化的窗口还原是很容易的,
这只是使用 Microsoft.VisualBasic.ApplicationServices 命名空间中的 WindowsFormsApplicationBase 的另一种变体。比使用 Mutex 更容易/更好。
你可能会改变
void this_StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
Form1 form = MainForm as Form1; //My derived form type
form.LoadFile(e.CommandLine[1]);
}
到
void this_StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
Form1 form = MainForm as Form1; //My derived form type
form.Show();
form.WindowState = FormWindowState.Normal;
}
关于c# - 单击桌面快捷方式时从系统托盘恢复应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529370/