繁体   English   中英

无法从任务栏还原最小化的WinForms应用

[英]Can't restore minimized WinForms app from taskbar

我有一个非常奇怪的问题,在将标准WinForms C#应用程序最小化之后,或者如果在最大化模式下使用了另一个应用程序,有时无法从任务栏还原标准WinForms C#应用程序。

这在Windows Server 2012和Windows 10上会发生(我尚未在其他OS上进行过测试)。 如果鼠标悬停在我的应用程序任务栏图标上,则会显示我的应用程序的缩略图视图。 向上移动鼠标光标以将鼠标悬停在缩略图上,该应用程序实际上会再次显示在桌面上,但是如果我左键单击缩略图或将光标移出缩略图,它将再次消失。 相反,如果我右键单击缩略图,则可以从弹出菜单中选择“最大化”或“还原”,并且两者均可按预期工作。 因此,该问题仅影响常规的左键单击任务栏图标或弹出缩略图。

我正在为我的应用程序使用.NET Framework 4.6,该应用程序仅由具有默认属性值的单个表单组成,并且没有WndProc替代或其他奇特的东西。

我不知道如何调试此错误,而且该错误在100%的情况下都无法重现,因此非常欢迎提供有关如何捕获并提供更多信息以帮助解决该问题的建议。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM