TreeView的几个概念

**1.控件整体叫TreeView类

mainTree.Nodes则表示一个TreeNodeCollection类,其中mainTree为一个TreeView控件名
mainTree的几个常用方法:
1.添加根节点mainTree.Nodes.Add(nodeName);
//mainTree类型为TreeView,mainTree.Nodes为TreeNodeCollection类型
2.添加子节点mainTree.SelectedNode.Nodes.Add(nodeName);
//mainTree.SelectedNode为TreeNode类型,mainTree.SelectedNode.Nodes为TreeNodeCollection类型
3.mainTree.ExpandAll():展开所有节点
4.mainTree.CollapseAll():关闭所有节点
5.mainTree.Nodes.Clear():清除所有节点
6.mainTree.SelectedNode.Remove():清除所选节点
7.mainTree.Nodes.Count:表示树上的节点数

**2.TreeView中的每个节点(Node)称为TreeNode类
3.TreeNode连起来称之为TreeNodeColletion类**
比如要把一个路径下的目录(directories)和文件(files)写入到一个TreeView控件上,利用递归调用循环加载指定路径下目录及其子目录

//先定义一个名叫mainTree的TreeView控件名
string path = @"H:\";
LoadContents(path,mainTree.Nodes);

private void LoadContents(string path , TreeNodeCollection treeNodeCollection)
{
//获取指定路径下的目录,返回类型为string[]
    string[] dirs =Directory.GetDirectories(path);
    //将路径下的目录作为节点加载到mainTree上
    foreach(var item in dirs)
    {
    //Path.GetFileName()只获取文件名,不包含路径
        TreeNode tn = treeNodeCollection.Add(Path.GetFileName(item));
        //递归调用,使目录下的子目录也能够加载到mainTree中
        LoadContents(item , tn.Nodes);
    }
    //将指定路径下的文件也加载到mainTree上,加载“*.txt”类型的文件
    string[] files = Directory.GetFiles(path,"*.txt");
    foreach(var item in files)
    {
        TreeNode tn = treeNodeCollection.Add(Path.GetFileName(item));   
        tn.Tag = item;  //Tag表示节点tn的信息,为object类型,此时将item表示完整的路径信息,为string类型

    }
}

你可能感兴趣的:(C#学习,treeview)