C#TreeView
TreeView控件的基本使用
1节点的全部清除
treeView1.Nodes.Clear();
2节点的添加
treeView1.Nodes.Add(root);{ TreeNode root = new TreeNode("目录"); 也可以 TreeNode root = new TreeNode(); root.text="目录";}
3节点的展开和隐藏
//展开节点
//treeview1所有节点全部展开
this.treeView1.ExpandAll();
//展开选中节点的下一级子节点
this.treeView1.SelectedNode.Expand();
//展开选中节点的所有子节点(包括以下多个层级所有子节点)
this.treeView1.SelectedNode.ExpandAll();
//折叠节点
this.treeView1.CollapseAll();//折叠treeview所有节点
this.treeView1.SelectedNode.CollapseAll();//折叠选中节点下的所有节点
4节点的删除
//指定text,该节点不能删除。
//this.treeView1.SelectedNode为选中节点对象。
if (this.treeView1.SelectedNode.Text == "不能删除节点")
{
MessageBox.Show("该文件不可删除!");
return;
}
//提示是否删除**节点,确认后使用待删除节点的Remove()函数删除
if (MessageBox.Show("是否删除【" + this.treeView1.SelectedNode.Text + "】节点?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
this.treeView1.SelectedNode.Remove();
//删除指定index节点
this.treeView1.Nodes[i].Remove();//删除第i个根节点
this.treeView1.Nodes[i].Nodes[j].Remove();//删除第i个根节点的第j个一级节点
判断当前节点是否存在父节点,若存在,则删除父节点下的子节点
5节点的父节点(当前节点的父级节点,即子节点的上一级节点)
子节点的父节点添加节点,即子节点的同级节点的添加
6节点的常用属性
TreeView控件的使用示例 《递归》
在获取节点集合前,我们需要了解两种对象①节点集合对象:TreeNodeCollection②节点对象:TreeNode。
TreeNodeCollection可多个存储TreeNode对象,TreeNodeCollection就类似于一个treeview控件或其中的某个父节点;
TreeNode对象相当于treeview中的任意一个节点,它存储了节点的text、Name、Tag、key、ImageIndex等所有属性信息。
TreeView递归加载节点
C#遍历指定文件夹下所有子文件夹及文件并添加到目录树:
private void Form1_Load(object sender, EventArgs e)
{
TreeNode root = new TreeNode();
//根目录名称
root.Text = "目录";
//根目录路径
GetFiles(@"E:\Tools", root);
treeView1.Nodes.Add(root);
}
private void GetFiles(string filePath, TreeNode node)
{
DirectoryInfo folder = new DirectoryInfo(filePath);
node.Text = folder.Name;
node.Tag = folder.FullName;
FileInfo[] chldFiles = folder.GetFiles("*.*");
foreach (FileInfo chlFile in chldFiles)
{
TreeNode chldNode = new TreeNode();
chldNode.Text = chlFile.Name;
chldNode.Tag = chlFile.FullName;
node.Nodes.Add(chldNode);
}
DirectoryInfo[] chldFolders = folder.GetDirectories();
foreach (DirectoryInfo chldFolder in chldFolders)
{
TreeNode chldNode = new TreeNode();
chldNode.Text = folder.Name;
chldNode.Tag = folder.FullName;
node.Nodes.Add(chldNode);
GetFiles(chldFolder.FullName, chldNode);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix