是DataTable"> 是DataTable" />
欢迎来到天天文库
浏览记录
ID:15732328
大小:15.08 KB
页数:7页
时间:2018-08-05
《treeview 树节点添加,删除的操作方法(递归调用显示子树)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、加载树节点的方法(无级限) /// /// 加载树节点。建树的基本思路是:从根节点开始递归调用显示子树。 /// /// 是DataTable类型的保存树节点的数据表 /// 数据表中保存节点的列名称 /// 数据表中保存节点父节点的列名称 /// 2、ram name="nodeName">数据表中保存节点名称的列名称 /// 表示TreeView.Nodes对象的集合 /// 定义根节点的父节点的标记 //法一:用DataView public static void InitTree(DataTabledt,string nodeID,string pa3、rentID,string nodeName,TreeNodeCollection treeNodeCollection,string rootNodeTag) { try { TreeNode tmpNode; DataView dv=new DataView(); dv.Table=dt; if (rootNodeTag!=""4、5、rootNodeTag!=null) dv.RowFilter=parentID+"='"+rootNodeTag+"'"; forea6、ch(DataRowView drv in dv) { tmpNode=new TreeNode(); tmpNode.Text=drv[nodeName].ToString(); tmpNode.Tag=drv[nodeID]; string father=drv[nodeID].ToString(); treeNodeCollection.Add(tmpNode); InitTree(dt,nodeID,parentID,nodeName,tmpNode.Nodes,fat7、her); } } catch(Exception te) { MessageBox.Show(te.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Warning); } } 注意:以下为弹出菜单项代码及相关的函数和方法2、增加根节点 private voidmenuItemAddRoot_Click(object sender, System.EventArgs e) { try { TreeNode 8、treeNode=new TreeNode("新节点"); treeNode.Tag=MaxRecordNumber(dataSet.Tables["tree"],"NodeID")+1; this.treeView.Nodes.Add(treeNode); AddDeleteNode(treeNode,RootNodeTag,"Add"); treeView.SelectedNode = treeNode ; LoadTreeView.LoadTreeNodeImage(treeV9、iew.SelectedNode,this.imageList1,NodeImageMode); //执行指定节点的选定操作 this.treeViewAfterSelect(treeView.SelectedNode ); menuItemRename_Click(new object(),new System.EventArgs()); } catch(Exception te) { MessageBox.Show(this,te.Message,"ErrorRoot",Me10、ssageBoxButtons.OK,MessageBoxIcon.Warning); } } 3、增加子节点 private void menuItemAddChild_Click(object sender, System.EventArgs e) { try { //1.当一个节点有对应链接资料时,不可以增加子节点 //2.当一个节点有对应链接资料时,可以增加图片 if (this.IsHaveLineData(d
2、ram name="nodeName">数据表中保存节点名称的列名称 /// 表示TreeView.Nodes对象的集合 /// 定义根节点的父节点的标记 //法一:用DataView public static void InitTree(DataTabledt,string nodeID,string pa
3、rentID,string nodeName,TreeNodeCollection treeNodeCollection,string rootNodeTag) { try { TreeNode tmpNode; DataView dv=new DataView(); dv.Table=dt; if (rootNodeTag!=""
4、
5、rootNodeTag!=null) dv.RowFilter=parentID+"='"+rootNodeTag+"'"; forea
6、ch(DataRowView drv in dv) { tmpNode=new TreeNode(); tmpNode.Text=drv[nodeName].ToString(); tmpNode.Tag=drv[nodeID]; string father=drv[nodeID].ToString(); treeNodeCollection.Add(tmpNode); InitTree(dt,nodeID,parentID,nodeName,tmpNode.Nodes,fat
7、her); } } catch(Exception te) { MessageBox.Show(te.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Warning); } } 注意:以下为弹出菜单项代码及相关的函数和方法2、增加根节点 private voidmenuItemAddRoot_Click(object sender, System.EventArgs e) { try { TreeNode
8、treeNode=new TreeNode("新节点"); treeNode.Tag=MaxRecordNumber(dataSet.Tables["tree"],"NodeID")+1; this.treeView.Nodes.Add(treeNode); AddDeleteNode(treeNode,RootNodeTag,"Add"); treeView.SelectedNode = treeNode ; LoadTreeView.LoadTreeNodeImage(treeV
9、iew.SelectedNode,this.imageList1,NodeImageMode); //执行指定节点的选定操作 this.treeViewAfterSelect(treeView.SelectedNode ); menuItemRename_Click(new object(),new System.EventArgs()); } catch(Exception te) { MessageBox.Show(this,te.Message,"ErrorRoot",Me
10、ssageBoxButtons.OK,MessageBoxIcon.Warning); } } 3、增加子节点 private void menuItemAddChild_Click(object sender, System.EventArgs e) { try { //1.当一个节点有对应链接资料时,不可以增加子节点 //2.当一个节点有对应链接资料时,可以增加图片 if (this.IsHaveLineData(d
此文档下载收益归作者所有