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)
{
}
}
}