当前位置:编程学习 > C#/ASP.NET >>

delphi2005中treeview的用法

我已经添加了第一层的几个节点,是从数据库里select进来的。比如第一层节点是所有的部门。第二层节点我想添加部门中的人员,当然首先要从数据库里面
select Name from YGXX where Department = (其父节点,不知道怎么表述。)
请问如何添加?什么语法?好像2005里面跟delphi7的不一样! --------------------编程问答-------------------- 不懂也要帮楼主顶顶 --------------------编程问答-------------------- 学习中~帮你顶 --------------------编程问答-------------------- TREEVIEW里做一个循环:每个节点的ID就是DEPARTMENTID,通过这个DEPARTMENTID再在数据库里找一次,然后填充就可以了。
不明白的可以看看我的博客:
http://user.qzone.qq.com/37009655/blog/1212113580 --------------------编程问答-------------------- 以前用过 D7  
一种方法
没有必要一下子用 FOR  把 子结点 都  NEW 出来
这样如果树的结点多的话 内存会急升! 不好
不如等用户点了一个结点  如果他下面有子结点  再生成新的子结点就可以了 
好像  MS的资源管理器是这么做的  
给一个C#的例子!

namespace G32
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            DriveInfo[] drives = DriveInfo.GetDrives();
            this.comboBox1.DataSource = drives;
        }

        private TreeNode GetTree(string path)
        {
            if (path!= "")
            {
                string[] folders = Directory.GetFileSystemEntries(path);
                TreeNode tempnode = new TreeNode(path);
                foreach (string folder in folders)
                {
                    TreeNode node = new TreeNode(folder.Substring(path.Length, folder.Length - path.Length));
                    if (File.Exists(folder))
                    {
                        node.ImageIndex = 1;
                        tempnode.Nodes.Add(node);
                    }
                    else
                    {
                        node.ImageIndex = 0;
                        tempnode.Nodes.Add(node);

                    }
                }
                return tempnode;
            }
            return null;


 
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.treeView1.Nodes.Clear();
            string path = this.comboBox1.Text;
            TreeNode tempnode = new TreeNode(path);
            this.treeView1.Nodes.Add(tempnode);
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string path = this.treeView1.SelectedNode.FullPath;
            if (File.Exists(path))
            { }
            else
            {
                 TreeNode rootnode = GetTree(path);
                this.treeView1.SelectedNode.Nodes.Clear();
                foreach (TreeNode tempnode in rootnode.Nodes)
                {
                    this.treeView1.SelectedNode.Nodes.Add(tempnode);
                }
               UpListView(e);
            }
        }
        private void UpListView(TreeViewEventArgs e)
        {
                string[] info = new string[2];
                this.listView1.Items.Clear();
                string path = e.Node.FullPath;
                if (path!="")
                {
                    string[] folders = Directory.GetFileSystemEntries(path);
                    foreach (string folder in folders)
                    {
                          string filename = Path.GetFileName(folder);
                          string exname = Path.GetExtension(folder);
                          info[0] = filename;
                          info[1] = exname;
                          ListViewItem item = new ListViewItem(info);
                          this.listView1.Items.Add(item);
                    }
                }
         }

        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            ListViewItem item = this.listView1.SelectedItems[0];
            string FullPath = this.treeView1.SelectedNode.FullPath+item.Text;
            try
            {  
                if (File.Exists(FullPath))
                {
                    Process.Start(FullPath);
                }
                else
                {
                    MessageBox.Show("你点击的是文件夹!!");
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

     
           
        }

    }
}


补充:.NET技术 ,  其他语言
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,