3

假设多个模态窗口显示在彼此上方。所有这些都有ShowInTaskbar = false,这意味着TaskBar您只能看到MainForm并且所有模态窗口都被隐藏了。

现在您按ALT+TAB键,最上面的模态窗口就会消失。但是你不能让它回到前面。

在您看来,这应该如何正确完成?

4

2 回答 2

7

如果模态窗口卡在主窗体后面,听起来你没有设置它的所有者。当你调用时showDialog(),你需要像这样传入主窗体:

modalWin.showDialog(mainForm);

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

于 2010-04-16T07:58:58.207 回答
0

好的 只是为了完成它:

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

form.ShowDialog(ownerInstance);

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

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

这是如何将 Ownder 设置为 Wpf 窗口的 Wpf 窗口:

.Owner = Window.GetWindow(ownerInstance)
于 2010-04-16T08:47:09.080 回答