private void addNode(string dir, TreeNodeCollection treeNodes)
        {
            string[] dirs = Directory.GetDirectories(dir);  //返回指定文件夹下的文件夹
            int k = 0;
            for (int i = 0; i < dirs.Length; i++)
            {
                if (Directory.Exists(dirs[i]))
                {
                    string[] name = dirs[i].Split('\\');
                    TreeNode node = new TreeNode(dir + name[name.Length - 1]);
                    node.ImageIndex = 0;
                    node.SelectedImageIndex = 2;
                    treeNodes.Add(name[name.Length - 1]);   //添加文件夹节点
                    addNode(dirs[i], treeNodes[k++].Nodes); //调用一下层方法
                }
            }
            string[] files = Directory.GetFiles(dir);   //返回指定文件夹下的文件
            for (int i = 0; i < files.Length; i++)
            {
                string str = "";
                if (File.Exists(files[i]) && files[i].EndsWith(".url")) //只获取url后缀的网页快捷方式文件
                {
                    str = Path.GetFileName(files[i]);
                    TreeNode node = new TreeNode(dir + str);
                    node.ImageIndex = 1;
                    node.SelectedImageIndex = 2;
                    treeNodes.Add(str); //添加文件节点
                }
            }
        }如上面的代码,,前一个for是文件夹,后面是文件,,,但是不解的是为什么整棵树的图标都是默认的0,,而不是我设的1或2????

解决方案 »

  1.   

    你要把 你定义的imagelist 设置给 this.treeView1.ImageList
      

  2.   

    很搞笑,这代码不是你写的吧?
    TreeNode node = new TreeNode(dir + name[name.Length - 1]);
    node.ImageIndex = 0;
    node.SelectedImageIndex = 2;
    treeNodes.Add(name[name.Length - 1]); //添加文件夹节点
    是不是应该这样?
    treeNodes.Add(node)
    你创建的这个node后面根本没有添加到Tree上。
      

  3.   

    太乱了,不想看了,直接看我的博文吧
    http://blog.csdn.net/mngzilin/archive/2010/04/27/5535136.aspx