首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 動態的生成一個樹.解决思路

2011-12-29 
c# 動態的生成一個樹.c# 動態的生成一個樹,根據文件名(文件不是固定的,是動態獲得的)树的节点名字是此文件

c# 動態的生成一個樹.
c# 動態的生成一個樹,根據文件名(文件不是固定的,是動態獲得的)树的节点名字是此文件下的子文件的名字,树的内容对应文件的一个层次。謝謝!

[解决办法]
http://blog.csdn.net/zgke/archive/2008/11/29/3408133.aspx

看看这个 可能对你有帮助
[解决办法]
顶顶
[解决办法]

C# code
 private void Form1_Load(object sender, EventArgs e)        {            imageList1.Images.Clear();            treeView1.Nodes.Clear();            foreach (string cpname in Directory.GetLogicalDrives())            {                if (cpname == "C:\\")                {                    continue;                }                Win32.SHFILEINFO shfi = new Win32.SHFILEINFO();                DirectoryInfo dir = new DirectoryInfo(cpname);                //获得图标                Win32.SHGetFileInfo(cpname,                                    (uint)0x80,                                    ref shfi,                                    (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi),                                    (uint)(0x100 | 0x400)); //取得Icon和TypeName                //添加图标                imageList1.Images.Add(dir.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone());                TreeNode node = new TreeNode(dir.Name);                node.ImageIndex = imageList1.Images.Count - 1;                node.SelectedImageIndex = imageList1.Images.Count - 1;                node.Name = dir.FullName;                treeView1.Nodes.Add(node);                Win32.DestroyIcon(shfi.hIcon);                node.Nodes.Add(lsnode);                node.Tag = true;            }            treeView1.CollapseAll();        }/// <summary>        /// 针对文件目录        /// </summary>        private void GetListViewItem(string path, TreeNode snode)        {            string[] dirs = Directory.GetDirectories(path);            string[] files = Directory.GetFiles(path);            Win32.SHFILEINFO shfi = new Win32.SHFILEINFO();            for (int i = 0; i < dirs.Length; i++)            {                try                {                    DirectoryInfo dir = new DirectoryInfo(dirs[i]);                    if (dir.Name == "auto.exe" || dir.Name == "Autorun.inf" || dir.Name == "RECYCLER" ||                        dir.Name == "System Volume Information" || dir.Name == "$RECYCLE.BIN")                        continue;                    //获得图标                    Win32.SHGetFileInfo(dirs[i],                                        (uint)0x80,                                        ref shfi,                                        (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi),                                        (uint)(0x100 | 0x400)); //取得Icon和TypeName                    //添加图标                    imageList1.Images.Add(dir.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone());                    TreeNode node = new TreeNode(dir.Name);                    node.Name = dir.FullName;                    node.ImageIndex = imageList1.Images.Count - 1;                    node.SelectedImageIndex = imageList1.Images.Count - 1;                    node.Tag = true;                    snode.Nodes.Add(node);                    node.Nodes.Add(lsnode);                    Win32.DestroyIcon(shfi.hIcon);                }                catch                {                }            }            for (int i = 0; i < files.Length; i++)            {                try                {                    FileInfo fi = new FileInfo(files[i]);                    //获得图标                    Win32.SHGetFileInfo(files[i],                                        (uint)0x80,                                        ref shfi,                                        (uint)System.Runtime.InteropServices.Marshal.SizeOf(shfi),                                        (uint)(0x100 | 0x400)); //取得Icon和TypeName                    //添加图标                    imageList1.Images.Add(fi.Name, (Icon)Icon.FromHandle(shfi.hIcon).Clone());                    TreeNode node = new TreeNode(fi.Name);                    node.Name = fi.FullName;                    node.ImageIndex = imageList1.Images.Count - 1;                    node.SelectedImageIndex = imageList1.Images.Count - 1;                    snode.Nodes.Add(node);                    Win32.DestroyIcon(shfi.hIcon);                }                catch                {                }            }        } 


[解决办法]

C# code
 private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)        {            TreeNode node = e.Node;            if (node.Tag == null || Convert.ToBoolean(node.Tag) == false)                return;            if (node.FirstNode.Text == lsnode)            {                node.Nodes.Clear();                GetListViewItem(node.Name, node);            }        }
[解决办法]
C# code
 private void drawLog()        {             treeView1.Nodes.Clear();               dateTime = StartTimePickerStemShow.Value;            year = dateTime.Year.ToString();            month = dateTime.Month.ToString();            day = dateTime.Day.ToString();            if (Convert.ToInt32(month) < 10)            {                month = "0" + month;            }            if (Convert.ToInt32(day) < 10)            {                day = "0" + day;            }            treeView1.Nodes.Add(year + " - " + month + " - " + day);            treeView1.Nodes[0].Nodes.Add("Normal Files");            treeView1.Nodes[0].Nodes.Add("Quality Files");            DirInfo = new DirectoryInfo("C:\\Awdon\\stemdone\\" + year + "\\" + month + "\\" + day + "\\");            if (checkFoders(DirInfo))            {                FileInfo[] fi = DirInfo.GetFiles("*.stem");                int count = 1;                foreach (FileInfo a in fi)                {                    string filename = a.ToString().Substring(0, a.ToString().Length - 5);                    string file = filename.Substring(8);                    treeView1.Nodes[0].Nodes[0].Nodes.Add(file);                    if (count == fi.Length)                    {                        viewFile(file, DirInfo + a.ToString());                    }                    count++;                }                FileInfo[] fi_hfile = DirInfo.GetFiles("*.hstem");                foreach (FileInfo a in fi_hfile)                {                    string filename = a.ToString().Substring(0, a.ToString().Length - 6);                    string file = filename.Substring(8);                    treeView1.Nodes[0].Nodes[1].Nodes.Add(file);                }                treeView1.Nodes[0].Expand();                treeView1.Nodes[0].Nodes[0].Expand();                treeView1.Nodes[0].Nodes[1].Expand();                draawIt();            }        }
[解决办法]
string lsnode = "-ls-";
少了个变量晕

热点排行