关注互联网、IT技术!

C#技术总结:Winform TreeView控件递归创建树

  •  admin
  •  2011-12-29 06:12:59
  •     
这是个很简单事情,只需要写一个递归函数就OK,很早以前(至少两年前了)就写过,可是今天再碰到,竟然纠结了半天,总是出错,可能真是太长时间不写程序的缘故,思维都退化了。 在改进我那个邮件群发软件,做一个分组管理功能,分组以树的形式显示。 分组的数据结构很简单,只有三个字段,id,name,parent_id,需要根据父Id,自动创建一棵树。 基本思路: 1、从数据库读取出分组信息,保存在列表中; 2、遍历列表,创建对应的节点,然后调用递归函数,依次将这些节点添加到树中。 递归函数实现:
        //建立树
        private void BuildTree(TreeNodeCollection tnc, int parent_id,TreeNode tnode)
        {
            if (parent_id == 0)
            {
                tvGroup.Nodes.Add(tnode);
                return;
            }
            foreach (TreeNode tn in tnc)
            {
                GroupInfo groupInfo = (GroupInfo)tn.Tag;
                if (groupInfo.Id == parent_id)
                {
                    tn.Nodes.Add(tnode);
                    return;
                }
                else
                {
                    BuildTree(tn.Nodes, parent_id,tnode);
                }
            }
        }
其中tvGroup是TreeView控件。可能写的有尽人意的地方,也没考虑效率问题,先凑合着用吧,反正功能是实现了。哎,惭愧!

相关文章

评论

称呼(可以不填)
Email(可以不填)
链接(可以不填)
请输入评论内容*