我想在我的应用程序中拥有一个文件夹浏览器,但是I don't想要使用FolderBrowserDialog。 (有几个原因,比如使用起来很痛苦)
我想使用标准的 OpenFileDialog,但针对目录进行了修改。
举个例子,µTorrent http://utorrent.com/有一个很好的实现(首选项/目录/放入新下载:)。标准的打开文件对话框使用户能够:
- 将完整路径粘贴到底部的文本字段中
- 在 Vista 上使用“收藏夹链接”栏
- 在 Vista 上使用搜索
- 自动记住最后一个目录
- more...
有人知道如何实施吗?在 C# 中。
我不确定 uTorrent 但这听起来很像新的 Vista文件对话框 http://msdn.microsoft.com/en-us/library/windows/desktop/bb775966%28v=vs.85%29.aspx设置了 FOS_PICKFOLDERS 选项。其通用 C# 代码如下所示:
var frm = (IFileDialog)(new FileOpenDialogRCW());
uint options;
frm.GetOptions(out options);
options |= FOS_PICKFOLDERS;
frm.SetOptions(options);
if (frm.Show(owner.Handle) == S_OK) {
IShellItem shellItem;
frm.GetResult(out shellItem);
IntPtr pszString;
shellItem.GetDisplayName(SIGDN_FILESYSPATH, out pszString);
this.Folder = Marshal.PtrToStringAuto(pszString);
}
完整代码可以找到here http://www.jmedved.com/2011/12/openfolderdialog/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)