1. 左侧 "文件夹目录树" —— TreeView(树视图)
核心特性:
- 层级结构:以树形结构展示具有父子关系的数据(如文件夹目录、组织架构等),通过 "节点(Node)" 表示每个元素
- 展开 / 折叠:支持点击 "+/-" 图标展开或折叠子节点,适合展示嵌套关系
- 选择交互:可点击节点进行选择,触发选择事件(如你代码中的
AfterSelect
事件)
编程中的角色:
- 在 Windows Forms 中对应
System.Windows.Forms.TreeView
类 - 在 WPF 中对应
System.Windows.Controls.TreeView
- 主要用于导航层级数据,例如:
- 文件夹目录结构(如你的代码中展示驱动器→文件夹→子文件夹)
- 软件中的菜单层级、项目结构树
- 数据库表关系、XML 节点结构等
关键属性 / 方法(以你的代码为例):
Nodes
:存储树的节点集合(如folderTreeView.Nodes.Add(...)
添加驱动器节点)Tag
:用于存储节点关联的数据(如你的代码中存储DirectoryInfo
对象)AfterSelect
:节点被选中时触发的事件BeforeExpand
:节点展开前触发的事件(用于延迟加载子节点,提升性能)
2. 右侧 "显示文件的框" —— ListView(列表视图)
核心特性:
- 多视图展示:支持多种布局(详情列表、大图标、小图标、列表等),你的代码中用的是
Details
(详情视图) - 列信息:在详情视图中可通过列(Column)展示多条属性(如文件名、大小、修改日期)
- 多选支持:允许同时选择多个项(通过
MultiSelect
属性控制)
编程中的角色:
- 在 Windows Forms 中对应
System.Windows.Forms.ListView
类 - 在 WPF 中对应
System.Windows.Controls.ListView
- 主要用于展示和管理一组同类型数据,例如:
- 文件夹中的文件列表(如你的代码中展示文件夹和文件)
- 数据表格(如订单列表、用户列表)
- 图片浏览器的缩略图列表
关键属性 / 方法(以你的代码为例):
Columns
:定义详情视图中的列(如fileListView.Columns.Add("名称", 200)
)Items
:存储列表项集合(如listView.Items.Add(item)
添加文件 / 文件夹项)View
:设置展示模式(你的代码中View = View.Details
表示详情列表)DoubleClick
:双击项时触发的事件(如你的代码中用于导航到子文件夹)
两者的配合关系
在文件浏览器场景中,这两个组件通常是联动的:
- TreeView 负责导航定位(选择文件夹)
- ListView 负责展示详情(显示选中文件夹中的内容)
- 通过事件(如 TreeView 的
AfterSelect
)实现联动:当 TreeView 选中节点变化时,触发 ListView 更新显示对应内容
这种组合是操作系统和文件管理类软件的经典 UI 模式,既保留了层级导航的清晰性,又能展示当前位置的详细内容。