递归加载treeview

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace treeviewdemo
{
    public partial class Form1 : Form
    {

        DataTable dtt;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = null;


            dtt = new DataTable();
            dtt.Columns.Add("id", typeof(System.Int16));
            dtt.Columns.Add("fid", typeof(System.Int16));
            dtt.Columns.Add("name", typeof(System.String));

            DataRow dr;

            for (int m = 1; m <= 5; m++)
            {
                dr = dtt.NewRow();
                dr["id"] = m;
                dr["fid"] = m - 1;
                dr["name"] = m.ToString() + "节点";
                dtt.Rows.Add(dr);
            }

            for (int m = 1; m <= 5; m++)
            {
                dr = dtt.NewRow();
                dr["id"] = m * 10;
                dr["fid"] = (m - 1) * 10;
                dr["name"] = (m*10).ToString() + "节点";
                dtt.Rows.Add(dr);
            }

            for (int m = 1; m <= 5; m++)
            {
                dr = dtt.NewRow();
                dr["id"] = m * 100;
                dr["fid"] = (m - 1) * 100;
                dr["name"] = (m * 100).ToString() + "节点";
                dtt.Rows.Add(dr);
            }
            dataGridView1.DataSource = dtt;

            treeView1.Nodes.Clear();

            TreeNode Node = new TreeNode();
            Node.Text = "根节点";
            Node.Tag = "根节点";
            treeView1.Nodes.Add(Node);

            AddTree(0, Node);

            treeView1.ExpandAll();
        }


        public void AddTree(int ParentID, TreeNode pNode)
        {
            DataView dvTree = new DataView(dtt);
            dvTree.RowFilter = "fid = " + ParentID;

            foreach (DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                Node.Text = Row["id"].ToString();
                Node.Tag = Row["name"].ToString();
                pNode.Nodes.Add(Node);
                AddTree(Int32.Parse(Row["id"].ToString()), Node);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
         

        }
    }
}

猜你喜欢

转载自blog.csdn.net/jato333/article/details/11101203