无法从任务栏恢复最小化的WinForms应用

时间:2017-10-17 18:31:49

标签: c# winforms

我有一个非常奇怪的问题,其中标准的WinForms C#应用程序有时无法从任务栏中恢复,在最小化后或在最大化模式下使用其他应用程序时。

这种情况发生在Windows Server 2012和Windows 10上(我还没有在其他操作系统中对其进行测试)。如果鼠标悬停在我的应用程序任务栏图标上,则会显示我的应用程序的缩略图视图。向上移动鼠标光标,将鼠标悬停在缩略图上,应用程序实际上会再次显示在桌面上,但如果我单击缩略图或将光标移离缩略图,它将再次消失。如果我正确点击缩略图,我可以选择"最大化"或者"恢复"从弹出菜单中,可以按预期工作。因此,该问题仅影响常规点击任务栏图标或弹出缩略图。

我正在为我的应用程序使用.NET Framework 4.6,该应用程序只包含一个具有默认属性值且没有WndProc覆盖或其他奇特内容的表单。

我不知道如何对此进行调试,并且该错误在100%的时间内都不可重现,因此我们非常欢迎有关如何捕获并提供更多信息以帮助解决问题的任何建议。

1 个答案:

答案 0 :(得分:0)

对我来说,问题是主窗口拥有的始终可见的无模式窗体。显然,当主窗口最小化时,无模形式也需要最小化。 WinForms不会自动为您执行此操作。我必须订阅主窗口的Resize事件,并在那里设置状态:

private void MainWindow_OnResize(object sender, EventArgs e)
{
    modelessForm.WindowState = WindowState;
}

仅在Windows 10上,Windows 7上未遇到此问题。