TreeView控件的加载,遍历递归的应用

来源:互联网 发布:刘诗诗步步惊心知乎 编辑:程序博客网 时间:2024/05/29 13:20

       看了许多TREEVIEW的使用方法,发现没有一个适合初次接触.NET中的TREEVIEW的例子,由于以前在VB6中加载TREEVIEW的结构树很简单,只是一个ADD()方法而已,在方法中指定父节点,图标等。。而在NET中,一切皆对象,就不能用这种思维去想了,比如:

11
1101
110101
11010101
110102
110103
1102
110201
110202
11020201
 我在加入的时候,先加第一层11,直接创建一个新节点,加载TREEVIEW的根节点下

TreeNode newNode = new TreeNode();
 newNode.Text ="china";
  newNode.Name = "11";
   newNode.Tag = "11";

之后观察结构,发现一下的所有节点都在11的子节点,那么下一步加载1101,1102

加载之前先找到1101,1102的父节点即 11

 TreeNode node = new TreeNode();

node =treeview1.Nodes.Find("11", true)[0];

node.Nodes.Add(newNode);  //newNode为要加入的节点,自己构造,不在叙述

照这种方法依次加入第三层 110101 ,110102,110201等,依次类推

当然这是一种方法,也可以用递归的方法。

以下是递归一个树的代码:

private void button1_Click(object sender, EventArgs e)
        {
            //循环主节点树
            foreach (TreeNode tt in tvwPro.Nodes)
            {
                load(tt);
            }
        }
        //递归找子节点
        public void  load(TreeNode nd)
        {
            MessageBox.Show(nd.Name);
           
            foreach (TreeNode tn in nd.Nodes)
            {
                MessageBox.Show(tn.Name);
                if (tn.GetNodeCount(true)>0)
                {
                    load(tn);
                 
                }
               
            }
        }

原创粉丝点击