Winforms ShowDialog(this) 阻塞其他应用程序切换到前台windows
Winforms ShowDialog(this) blocks the switching windows of other applications to the foreground
当我在 Winforms 应用程序中打开任何对话框时,Windows 10 会以这些方式表现得很奇怪:
- ALT-TAB 不再显示 windows
的列表
- 我无法使用任务栏图标切换到隐藏的应用程序 - 如果我 select 当前不可见的 window 任务栏图标(即使它没有被 winforms 应用程序隐藏)图标只是闪烁然后保持突出显示,但不会被带到前台。我可以使用其他可见的应用程序。一旦我关闭另一个对话框,我就可以正确使用其他应用程序的windows
- 如果我通过单击切换到 winforms 应用程序后面的应用程序 window,我将无法通过 ALT-TAB 或单击任务栏图标返回到 winforms 应用程序。我可以通过最小化其他应用程序来恢复它
我正在用
打开对话框
dialogFormName.ShowDialog(this);
TopMost 在所有表单上都设置为 false,并且未在代码中设置。
我已经阅读了大约 50 篇相关文章,唯一的问题似乎是设置了 TopMost 或者未使用父窗体调用 ShowDialog。我不是普通的 Winforms 开发人员,所以我可能在做一些愚蠢的事情。这让我发疯,所以我真的很感激任何帮助!
编辑:MessageBox.Show(this, "test") 也会出现同样的问题。仅使用一个按钮调用 MessageBox.Show(this, "test") 的新创建的应用程序不会出现此问题。问题应用程序使用 EntityFramework 但没有其他包,并且在我添加 EF 之前问题就存在了。
Form.ShowDialog()
阻塞父窗体直到它关闭。
使用 Show()
单独显示窗体而不阻塞其父窗体。
在尝试了不同的场景后,我终于找到了问题所在。在我的例子中,我在用户单击 ContextMenu 上的项目后调用 ShowDialog()。 ALT-TAB 的阻塞是由以下代码引起的,该代码将 ContextMenu 附加到菜单上下文对应的 ListView:
lstList.ContextMenu = myContextMenu;
我一删除该关联,ShowDialog 就不再阻止 ALT-TAB。
当我在 Winforms 应用程序中打开任何对话框时,Windows 10 会以这些方式表现得很奇怪:
- ALT-TAB 不再显示 windows 的列表
- 我无法使用任务栏图标切换到隐藏的应用程序 - 如果我 select 当前不可见的 window 任务栏图标(即使它没有被 winforms 应用程序隐藏)图标只是闪烁然后保持突出显示,但不会被带到前台。我可以使用其他可见的应用程序。一旦我关闭另一个对话框,我就可以正确使用其他应用程序的windows
- 如果我通过单击切换到 winforms 应用程序后面的应用程序 window,我将无法通过 ALT-TAB 或单击任务栏图标返回到 winforms 应用程序。我可以通过最小化其他应用程序来恢复它
我正在用
打开对话框dialogFormName.ShowDialog(this);
TopMost 在所有表单上都设置为 false,并且未在代码中设置。
我已经阅读了大约 50 篇相关文章,唯一的问题似乎是设置了 TopMost 或者未使用父窗体调用 ShowDialog。我不是普通的 Winforms 开发人员,所以我可能在做一些愚蠢的事情。这让我发疯,所以我真的很感激任何帮助!
编辑:MessageBox.Show(this, "test") 也会出现同样的问题。仅使用一个按钮调用 MessageBox.Show(this, "test") 的新创建的应用程序不会出现此问题。问题应用程序使用 EntityFramework 但没有其他包,并且在我添加 EF 之前问题就存在了。
Form.ShowDialog()
阻塞父窗体直到它关闭。
使用 Show()
单独显示窗体而不阻塞其父窗体。
在尝试了不同的场景后,我终于找到了问题所在。在我的例子中,我在用户单击 ContextMenu 上的项目后调用 ShowDialog()。 ALT-TAB 的阻塞是由以下代码引起的,该代码将 ContextMenu 附加到菜单上下文对应的 ListView:
lstList.ContextMenu = myContextMenu;
我一删除该关联,ShowDialog 就不再阻止 ALT-TAB。