WinForms模态窗口alt+tab问题

3
假设有多个堆叠在一起的模态窗口。所有这些窗口都设置了ShowInTaskbar = false,这意味着在任务栏(TaskBar)中只会看到MainForm,而所有模态窗口都被隐藏。

现在你按下ALT+TAB,最上面的模态窗口消失了。但是你无法再将其置于前台。

请问,在您看来,应该如何正确实现此功能?

2个回答

7

如果模态窗口卡在主表单后面,那么很可能你没有设置其所有者。当你调用showDialog()时,需要像这样传递主表单:

modalWin.showDialog(mainForm);

每次调用showDialog()方法时,如果您的程序有另一个应该在下面的窗体,则最好将其作为所有者传递。如果已经有模态窗口打开时显示模态窗口,则应将第一个模态窗口作为所有者。


0

好的,只是为了完成它:

这是如何将所有者设置为Winform的Winform:

form.ShowDialog(ownerInstance);

以下是如何将所有者设置为 WPF 窗口的 Winform:

MyWpfDialog dialog = new MyWpfDialog();
new System.Windows.Interop.WindowInteropHelper(dialog).Owner = ownerInstance.Handle;
dialog.ShowDialog();

这是如何将Owner设置为Wpf窗口的方法:

.Owner = Window.GetWindow(ownerInstance)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接