FolderTreeView 控件






4.87/5 (31投票s)
2002 年 10 月 2 日
3分钟阅读

411187

5063
一个简单的、
引言
这是我在 CodeProject 上几周前发布的 FolderTreeView
控件的全新版本。 该控件现在从 Desktop 命名空间开始,并添加了一种新的钻取方法,可以指定启动文件夹。 请注意,此控件并非旨在拥有实际 Windows 资源管理器 TreeView 的所有功能 - 它是一个轻量级控件,旨在用于希望为文件夹导航提供 treeview
而不支持 windows shell 扩展的项目中。 如果您正在寻找支持 shell 扩展的控件,您应该看看 Carlos H Perez 在 CodeProject 网站上提交的出色的 ËxplorerTreeControl
。
工作原理
在调用 InitFolderTreeView()
方法后,将创建一个虚拟的 Desktop 节点作为根节点,然后迭代 shell 的 Desktop 命名空间以填充第一级节点。 然后迭代子节点,仅检查是否存在子子节点。 如果找到子子节点,则插入一个虚拟节点,以便为可以展开的文件夹显示 [+]。 当 BeforeExpand
事件触发时,会检查要展开的文件夹是否存在虚拟节点。 如果存在虚拟节点,则将其删除并重新填充该节点的子节点。 如果节点的子节点已被填充,则不会发生进一步的操作。
用法
FolderTreeView 控件基于 3 个类
FolderTreeView
-FolderTreeView
实现ShellOperations
- 支持 Shell 操作ExtractIcons
- Shell 图标提取器
该控件自然地派生自 System.Windows.Forms.TreeView
,公开 1 个新属性 GetSelectedNodePath()
,它返回当前选定节点的完整路径。 有 2 个新方法:必须调用 InitFolderTreeView()
来填充 TreeView
- 通常,您会在 Form
的 OnLoad
事件中调用此方法。 第二个方法是 DrillToFolder(string folderPath)
- 这将递归遍历树以查找指定的文件夹路径,并返回一个布尔值来指示搜索是否成功。
用于检索 Desktop 根节点图标的方法效果很好,但可能不是最好的方法。 此控件尚未在 Win9x、NT 或 2000 中进行测试 - 非常感谢有关这些操作系统的反馈。 当然,如果您改进了这个控件,我将不胜感激,如果您有任何反馈要提供,请在下面发布。
更新
版本 1.11
- 更新了
GetDesktopIcon()
方法,以便它返回 shell 的小桌面图标而不是大版本 - 添加了代码,以便 Desktop 节点将返回完整的桌面文件夹路径
我现在已经在 Windows Me 上测试了代码,没有问题 - 感谢您提供有关它在其他操作系统上的工作情况的反馈!
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。