C# Winforms ShowDialog(此)阻止将其他应用程序的窗口切换到前台
当我在Winforms应用程序中打开任何对话框时,Windows 10在以下方面的行为异常:C# Winforms ShowDialog(此)阻止将其他应用程序的窗口切换到前台,c#,winforms,showdialog,C#,Winforms,Showdialog,当我在Winforms应用程序中打开任何对话框时,Windows 10在以下方面的行为异常: ALT-TAB不再显示窗口列表 我无法使用任务栏图标切换到隐藏的应用程序-如果我选择了当前不可见的窗口的任务栏图标(即使它没有被winforms应用程序隐藏),图标只会闪烁,然后保持高亮显示,但不会显示在前台。我可以使用其他可见的应用程序。一旦我关闭“其他”对话框,我就可以正确使用其他应用程序的窗口 如果通过单击winforms应用程序后面的应用程序窗口切换到该窗口,则无法通过ALT-TAB或单击任务栏
dialogFormName.ShowDialog(this);
TopMost在所有表单上都设置为false,并且未在代码中设置
我已经阅读了大约50篇相关文章,唯一的问题似乎不是最顶层的设置,就是没有使用父窗体调用ShowDialog。我不是一个普通的Winforms开发人员,所以我可能在做一些愚蠢的事情。这快把我逼疯了,所以我真的很感谢你的帮助
编辑:MessageBox.Show(这个“测试”)也会出现同样的问题。新创建的应用程序只有一个调用MessageBox.Show的按钮(此“测试”),而不会出现此问题。问题应用程序使用EntityFramework,但没有其他包,并且在我添加EF之前就存在问题 Form.ShowDialog()
将阻止父窗体,直到其关闭。
使用
Show()
单独显示表单,而不阻塞其父表单。尝试不同的场景后,我最终发现了问题。在我的例子中,我是在用户单击ContextMenu上的项目后调用ShowDialog()。ALT-TAB的阻塞是由以下代码引起的,这些代码将ContextMenu附加到该菜单在上下文中用于的ListView:
lstList.ContextMenu = myContextMenu;
一旦我删除了该关联,ShowDialog就不再阻止ALT-TAB。父窗体将被阻止,并且应用程序中的模式行为没有问题。问题在于,当对话框打开时,其他应用程序/窗口无法正常运行。