djc*_*uch 7 c# wpf openfiledialog
有没有办法修改OpenFileDialog的行为,以便它查看它打开的文件夹中的文件,然后根据其内容忽略某些文件?
一个例子是打开一个充满Zip文件的文件夹,但只显示包含某个文件的文件夹.
从文档中,有HookProc,但我不确定我是如何使用它的.
请注意,如果可能,我意识到这将是一个相对较慢的操作.目前我并不关心表现.
谢谢!
我不会忽视 OpenFileDialog 的复杂性。建立一个真正有效的系统并不容易。当您构建自己的对话框时,它不是“正常”对话框,因此会让用户感到困惑。即使你做得很好也是如此,这是困难的。因此,我建议您坚持扩展已有的内容,而不是编写新的内容。
查看这篇文章,了解 OFD 的扩展,它可能/可以进行调整以完全满足您的需求。您用 C# 编写了一个回调来响应路径选择。
相关:FolderBrowserDialogEx是FolderBrowserDialog 上的类似扩展。不管名称如何,您都可以将其配置为搜索文件和文件夹。当选择某些内容(文件夹、文件)时会调用一个回调,在该回调中您可以执行您需要执行的操作。例如,查看文件夹内的文件并填充文件列表以仅显示这些文件。
您可能考虑的另一个选择是Ookii 的对话框库。这是 OpenFileDialog 的开源实现,它包括 Vista 中所有新对话框内容的 COM 包装器。使用该库,您可以在 C# 代码中弹出 Vista OpenFileDialog 并从IFileDialogEvents接口接收事件。OnFolderChange() 就是这样的事件之一。在处理程序中,您可以调用 IFolder.GetFolder() ,这将获得一个IShellItem,它为您提供用户要更改到的文件夹。下一步将是逐项列出并可能过滤文件集,这是我将留给读者的练习......
归档时间: |
|
查看次数: |
1702 次 |
最近记录: |