我想在WinForm下做一个点击treeView树旁边的文件夹,当前文件夹变为打开,然后打开文件夹下的文件,怎么做呢?

解决方案 »

  1.   

    循环检索子节点用 System.IO.File.Open();打开
      

  2.   


    文件夹变为打开可以设置SELECTiMAGEINDEX(设置为IMAGELIST中的相应图片的INDEX值)你是显示选中文件夹内的文件和文件夹(像资源管理器那样)还是打开文件?
    如像资源管理器那样,就再加一个listview控件,利用它来显示指定文件夹下的资源列表 public void ShowFiles(string strDirectory) //将文件夹路径传过来
            {
                // 将传递进来的目录名称储存至字段中。
                this.strDirectory = strDirectory;            Items.Clear();            DirectoryInfo diDirectories = new DirectoryInfo(strDirectory);
                FileInfo[] afiFiles;            try
                {
                    //  GetFiles 方法来取得内含目录中所有档案的一个 FileInfo 数组。
                    afiFiles = diDirectories.GetFiles();
                }
                catch
                {
                    return;
                }            foreach (FileInfo fi in afiFiles)
                {
                    // 建立 ListViewItem。
                    ListViewItem lvi = new ListViewItem(fi.Name);                // 根据档案的扩展名来指派 ImageIndex 。
                    switch (Path.GetExtension(fi.Name).ToUpper())//自己可以添加类型
                    {
                        case ".EXE":
                            lvi.ImageIndex = 1;                        break;
                        default:
                            lvi.ImageIndex = 0;                        break;
                    }                // 新增「大小」与「修改日期」这两个子项目。
                    lvi.SubItems.Add(fi.Length.ToString("N0"));
                    lvi.SubItems.Add(fi.LastWriteTime.ToString());                // 新增「属性」这一个子项目。
                    string strAttr = "";                if ((fi.Attributes & FileAttributes.Archive) != 0)
                    {
                        strAttr += "A";
                    }                if ((fi.Attributes & FileAttributes.Hidden) != 0)
                    {
                        strAttr += "H";
                    }                if ((fi.Attributes & FileAttributes.ReadOnly) != 0)
                    {
                        strAttr += "R";
                    }                if ((fi.Attributes & FileAttributes.System) != 0)
                    {
                        strAttr += "S";
                    }                lvi.SubItems.Add(strAttr);                // 将完整的 ListViewItem 新增至。
                    Items.Add(lvi);
                }
            }
        }
      

  3.   

    已经实现了,谢谢,我在TreeView的事件
    vFrameTree_AfterSelect(object sender, TreeViewEventArgs e)
    tvFrameTree_AfterExpand(object sender, TreeViewEventArgs e)
    中处理了。