TreeView 递归添加子节点
来源:互联网 发布:二维数组与一维数组 编辑:程序博客网 时间:2024/05/16 09:13
此问题来自论坛,实现TreeView递归添加接点的主要思路是,数据表的设计,数据表应该有三个字段:"NodeID","Name",和"ParentID".
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyTest
...{
public partial class Form1 : Form
...{
public DataTable dt = new DataTable();
public DataSet ds = new DataSet();
public Form1()
...{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
...{
this.IntData();
this.InitTree(this.treeView1.Nodes, -1);
}
private void IntData()
...{
dt.TableName = "Nodes";
ds.Tables.Add(dt);
dt.Columns.Add("NodeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("ParentID", typeof(int));
addData(dt, 0, "公共查询部", -1);
addData(dt, 1, "分行科技部", -1);
addData(dt, 2, "福天支行", -1);
addData(dt, 3, "罗湖支行", -1);
addData(dt, 4, "人民币日报查询", 1);
addData(dt, 5, "外币日报查询", 1);
}
private void addData(DataTable dt, int NodeID, string Name, int ParentID)
...{
System.Data.DataRow drow = dt.NewRow();
drow["NodeID"] = NodeID;
drow["Name"] = Name;
drow["ParentID"] = ParentID;
dt.Rows.Add(drow);
}
private void InitTree(TreeNodeCollection Nds,int parentid)
...{
DataView dv=new DataView ();
TreeNode tmpNd;
int intId;
dv.Table =ds.Tables ["Nodes"];
dv.RowFilter = "ParentID='" + parentid + "'";
foreach (DataRowView drv in dv)
...{
tmpNd = new TreeNode();
tmpNd.Tag = drv["NodeID"];
tmpNd.Text = drv["Name"].ToString ();
intId =(int) drv["ParentID"];
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes,(int)( tmpNd.Tag));
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyTest
...{
public partial class Form1 : Form
...{
public DataTable dt = new DataTable();
public DataSet ds = new DataSet();
public Form1()
...{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
...{
this.IntData();
this.InitTree(this.treeView1.Nodes, -1);
}
private void IntData()
...{
dt.TableName = "Nodes";
ds.Tables.Add(dt);
dt.Columns.Add("NodeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("ParentID", typeof(int));
addData(dt, 0, "公共查询部", -1);
addData(dt, 1, "分行科技部", -1);
addData(dt, 2, "福天支行", -1);
addData(dt, 3, "罗湖支行", -1);
addData(dt, 4, "人民币日报查询", 1);
addData(dt, 5, "外币日报查询", 1);
}
private void addData(DataTable dt, int NodeID, string Name, int ParentID)
...{
System.Data.DataRow drow = dt.NewRow();
drow["NodeID"] = NodeID;
drow["Name"] = Name;
drow["ParentID"] = ParentID;
dt.Rows.Add(drow);
}
private void InitTree(TreeNodeCollection Nds,int parentid)
...{
DataView dv=new DataView ();
TreeNode tmpNd;
int intId;
dv.Table =ds.Tables ["Nodes"];
dv.RowFilter = "ParentID='" + parentid + "'";
foreach (DataRowView drv in dv)
...{
tmpNd = new TreeNode();
tmpNd.Tag = drv["NodeID"];
tmpNd.Text = drv["Name"].ToString ();
intId =(int) drv["ParentID"];
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes,(int)( tmpNd.Tag));
}
}
}
}
效果如图:
- TreeView 递归添加子节点
- TreeView递归添加节点
- TreeView递归添加节点详解
- C# TreeView,添加子节点
- treeview添加指定节点的子节点
- 递归为TreeView控件添加节点
- 递归获取treeview选中父节点的所有子节点
- VB6 Treeview的添加节点子节点、Treeview打开、Treeview关闭
- VB6 Treeview的添加节点子节点、Treeview打开、Treeview关闭
- treeview递归绑定节点
- treeview 节点 父节点 递归
- C# 为TreeView中的子节点添加单击事件
- WPF中TreeView添加子节点C#代码控制
- treeview添加节点
- delphi treeview添加节点
- treeview添加节点
- TreeView添加节点刷新
- asp.net treeview遍历递归获取当前节点所有子级(含子级的子级)
- 宝贝,如果你活着,记住我爱你
- 向MFC应用程序添加控制台窗口
- 蔡军生先生第二人生的源码分析(四十六)获取纹理图片的线程
- 32/64 bit 系统的区分
- 蔡军生先生第二人生的源码分析(四十七)发送下载纹理图片请求
- TreeView 递归添加子节点
- 蔡军生先生第二人生的源码分析(四十八)接收服务器回应的纹理图片头数据
- 蔡军生先生第二人生的源码分析(四十九)接收服务器回应的纹理图片数据
- 略论工程文件的弊端
- 是谁愚弄了咱中国人(转载)
- c#中重定向windows控制台程序的输出信息 - jinjazz - CSDNBlog
- CAB包制作过程
- ROSE安装
- C++多态简要说明