我尝试使用 WPF 中的FolderBrowserDialog,如下所示:
public static bool BrowseFolder(out string folderName)
{
using (System.Windows.Forms.FolderBrowserDialog dlg = new System.Windows.Forms.FolderBrowserDialog())
{
var result = dlg.ShowDialog();
folderName = dlg.SelectedPath;
return result == System.Windows.Forms.DialogResult.OK;
}
}
在 Visual Studio 2010 中使用“异常中断”时,在 ShowDialog() 调用中关闭对话框后出现异常。我很好奇为什么会出现这种情况。
异常:Win32Exception
消息:参数不正确
堆栈跟踪:位于 MS.Win32.UnsafeNativeMethods.SetFocus(HandleRef hWnd)
Update
我还尝试显式设置父级,但仍然引发了异常。
var w = new System.Windows.Interop.WindowInteropHelper(parent);
System.Windows.Forms.IWin32Window i = new WindowWrapper(w.Handle);
result = dlg.ShowDialog(i);
这只是一些互操作性的问题。当对话框关闭时,WPF 代码尝试将焦点设置回主窗口。问题是,对话框已禁用窗口,因此它还无法接收焦点。 WPF 太急于改变焦点,并且不了解有关对话框行为的任何信息。实际上没有什么问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)