65.9K
CodeProject 正在变化。 阅读更多。
Home

FolderTreeView 控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.87/5 (31投票s)

2002 年 10 月 2 日

3分钟阅读

viewsIcon

411187

downloadIcon

5063

一个简单的、类似资源管理器的 C# FolderTreeView 控件。

Sample Image

引言

这是我在 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 - 通常,您会在 FormOnLoad 事件中调用此方法。 第二个方法是 DrillToFolder(string folderPath) - 这将递归遍历树以查找指定的文件夹路径,并返回一个布尔值来指示搜索是否成功。

用于检索 Desktop 根节点图标的方法效果很好,但可能不是最好的方法。 此控件尚未在 Win9x、NT 或 2000 中进行测试 - 非常感谢有关这些操作系统的反馈。 当然,如果您改进了这个控件,我将不胜感激,如果您有任何反馈要提供,请在下面发布。

更新

版本 1.11

  • 更新了 GetDesktopIcon() 方法,以便它返回 shell 的小桌面图标而不是大版本
  • 添加了代码,以便 Desktop 节点将返回完整的桌面文件夹路径

我现在已经在 Windows Me 上测试了代码,没有问题 - 感谢您提供有关它在其他操作系统上的工作情况的反馈!

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

FolderTreeView 控件 - CodeProject - 代码之家
© . All rights reserved.