假设多个模态Windows 显示在彼此之上。
所有这些都有ShowInTaskbar = false
,这意味着在TaskBar
中您只能看到MainForm
并隐藏所有模态窗口。
现在按 ALT + TAB ,最上面的模态Windows消失。但你不能把它拿回来。
您认为如何正确完成这项工作?
答案 0 :(得分:7)
如果模态窗口卡在主窗体后面,听起来好像你没有设置它的主人。当您致电showDialog()
时,您需要传递主要表单,如下所示:
modalWin.showDialog(mainForm);
如果您致电showDialog()
,并且您的程序中有另一个应该位于其下的表单,则最好将其作为所有者传递。如果在已有模态窗口时显示模态窗口,则将第一个模态窗口作为所有者传递。
答案 1 :(得分: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)