treeview添加子节点(如何通过代码给treeview添加子节点(C#))
本文目录
- 如何通过代码给treeview添加子节点(C#)
- TreeView1根节点下添加子节点代码
- 如何动态添加TreeView子节点,有点伸手党了
- DELPHI TreeView,动态添加父节点,子节点
- C# TreeView怎么在指定的节点下添加子节点啊
- 请问:如何在 treeview 的根节点增加一个子节点多谢
- C#动态给treeview控件添加节点和子节点
- 如何在每个treeview节点上动态增加子节点
- 给treeview的父节点添加对应的子节点
- Delphi TreeView添加子节点
如何通过代码给treeview添加子节点(C#)
treeview.selectednode.nodes.add(“四川卫士”)追问:不是选中!回答: 那么你需要遍历整个树控件,找到节点后添加 需要先写一个方法,递归判断来遍历整个树控件 //查询某节点及其子节点是否有符合名字的节点,如果有则返回,如果没有,则返回空 public TreeNode SeachNode(TreeNode node, string name){if (node.Text == name) return node; foreach (TreeNode n in node.Nodes){TreeNode tempNode = SeachNode(n, name); if (tempNode != null){return tempNode;}}return null;} 然后用下面的代码就可以实现你要的功能了。。 foreach (TreeNode node in treeView1.Nodes)//遍历根节点{TreeNode tempNode = SeachNode(node, “电视台“);//调用方法查找 if (tempNode != null)//如果不为空,则为找到,那么就添加节点 tempNode.Nodes.Add(“四川卫视“);} 以上内容希望对你有帮助。。^^追问: TreeNode MyTv = new TreeNode(“我的电视台“); tvChannel.Nodes.Add(MyTv); MyTv.Nodes.Add(“四川卫视“); TreeView1.Nodes.Add(new TreeNode(“电视台“)); TreeView1.Nodes.ChildNodes.Add(new TreeNode(“四川卫视“));补充: tvChannel.Nodes;//已经有这个节点了
TreeView1根节点下添加子节点代码
这需要数据库设计的支持了.要在这张表里添加个字段:farthernode,以此为标识,用循环程序控制,父节node1,从数据库中选出所有farthernode是node1的,循环添加。哦,我明白你什么意思了.建树形应该用递归的。这样可以么,就是在数据库里在加一个字段存储子节点即childnode,它是bool型的,如果下面还有子节点的话就是true,反之为false,然后递归判断,只要不是false,就new一个node,然后node.aad();..你写的方法行不通,因为数据都是动态的,你不可能知道所有的节点数据的.如果是固态的,何必写程序控制呢.
如何动态添加TreeView子节点,有点伸手党了
原因很明显,当有新增的节点,Items已经发生了改变,所以你的items; Break; end;end;查询的方法有很多更有效率的
DELPHI TreeView,动态添加父节点,子节点
TreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集。一、针对TTreeNodes,也就是 TreeView.Items,有这些属性:1、count,节点个数。2、item ,通过index得到节点。二、针对TTreeNodes,也就是 TreeView.Items,常用的添加节点的操作有:AddFirst添加第一个根节点。由此函数添加的节点总排在前面,除非后来又使用此函数添加了一个节点,则后添加的节点将排在前面。该函数返回新添加的节点。AddChildFirst添加第一个子节点,要求有父节点作为其参数。返回新添加的节点。AddChild添加一个子节点,要求有父节点作为其参数。返回新添加的节点。Add添加一个兄弟节点,要求有兄弟节点作为其参数。返回新添加的节点。三、针对TTreeNodes,也就是 TreeView.Items,常用的得到节点的操作有:GetFirstNode() 得到根节点。然后配合TTreeNode.GetNext(),就可以访问所有的节点。四、建树举例:var root_node,cur_node:TTreeNode;begin root_node:=AddFirst(nil,根节点1); cur_node:=addChildfirst(root_node,nil,根节点1_child1); add(cur_node,根节点1_child2); root_node:=Add(nil,根节点2); AddChildFirst(root_node,根节点2_child1); end;五、事件触发:当从一个节点跳到另一个节点,会触发TTreeView.OnChange事件。该事件中,将传递node,即当前被选中的节点。当修改一个节点的text时,会触发TTreeView.onEdit事件。六、将节点和节点所对应的数据联系起来对于每个TTreeNode,有个Data属性,可以存放一个指针。我们可以利用这个域来存放与节点对应的自己的数据。1.先定义一个数据结构,作为记录我们要记录的数据。如: PMyData=^TMyData; TMyData=Record Name:string; Sex:String; Age:integer; end;2.然后,创建数时,将节点和节点数据联系起来:procedure TForm1.Button1Click(Sender: TObject);var RecPtr: PMyData;begin New(RecPtr); //记住,一定要先分配内存。有几个节点,就要分配几次内存。 RecPtr^.Name:=’康康’; RecPtr^.Sex := ’男’; RecPtr^.Age := 18+TreeView1.Items.Count; TreeView1.items.AddObject(nil,’节点数据结构 ’+inttostr(TreeView1.Items.Count),RecPtr);end;3.当我们选中一个节点时,就可以使用我们的数据了。procedure TForm1.TreeView1Change(Sender:TObject;Node:TTreeNode);var RecPtr: PMyData;begin if TreeView1.Selected=nil then Exit; if TreeView1.Selected.Data《》nil then begin RecPtr:=TreeView1.Selected.Data; ShowMessage(TreeView1.Selected.Text+#13#10+’姓名:’+RecPtr.Name+#13#10+’性别:’+RecPtr.Sex+#13#10+’年龄:’+inttostr(RecPtr.Age));end;七、一般使用流程:1、添加全局变量: b_first:boolean; //记录是否是第一次访问节点,因为此时数据还未准备好,而一旦访问节点就会触发OnChange事件,在此事件处理函数中也许会出错。2、在FormCreate中, a、设置b_first:=true; b. 创建数并将节点与数据联系。3、在FormShow中 设置b_first:=false;4.在事件OnChange中处理节点被选中事件。5.在Edit中处理节点被修改Text事件。 并调用OnChange.6.在 TreeView.Destory中 释放Data 中指向的内存空间。
C# TreeView怎么在指定的节点下添加子节点啊
你先要用treenode定义节点对象然后用下面的添加TreeView1.SelectedNode.ChildNodes.Add//给选中的添加TreeView1.Nodes.ChildNodes.Add//给指定index的节点添加
请问:如何在 treeview 的根节点增加一个子节点多谢
使添加的字节点的 data 为 ‘123’得到 imagelist 中的图片的 第二个图片单击 button2,则在选中的节点上添加一个子节点使添加的字节点的 data 为 ‘456’得到 imagelist 中的图片的 第三个图片(如果选中的是根节点,则不添加)TTreeview.items.addchild(parent:TTreenode;caption:string);第一个参数是指新节点的父节点,当为NIL时,增加一个根节点;当指定了某个已有节点时,新增的节点就是指定节点的子节点。第二个参数是新增节点的标签名称
C#动态给treeview控件添加节点和子节点
很简单,你的问题已经隐藏在你的疑惑的地方了treeview 鼠标点击一个节点,那么这个节点是处于选中状态的,它会有明显的蓝色背景,而且只有一个处于选中状态treeview.SelectNode 就是选中的节点此为方法一 方法二:设置treeview 有一个属性,是否显示复选框,好像叫做ShowCheckBox 设置为true,你每次勾选节点前面的复选框,然后怎么判断是否选中呢?循环所有根节点 foreach node in root.childnodeif(node.Checked)//这个node就是你需要在下面添加子节点的节点分清楚selected 和checked 就可以帮你解决你疑惑的地方
如何在每个treeview节点上动态增加子节点
TreeNode RootNode=new TreeNode();this.treeView1.Nodes.Add(RootNode);就这样加根节点,子节点也是同样方法。语句: ParentNode.ChildNodes.Add(ChildNode); 其中:ParentNode:父结点ChildNodes:VS默认的父节点属性,用于获取父结点的第一级子节点Add: VS默认的结点添加方法ChildNode: 所要插入的子节点
给treeview的父节点添加对应的子节点
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Xml;namespace XMLOperate{ public partial class Form1 : Form { //声明XML文档对象模型 XmlDocument document; //选中的节点 TreeNode selectNode; public Form1() { InitializeComponent(); //实例化文档模型 this.document = new XmlDocument(); } //退出 private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); } //添加根元素还是子元素 bool isPater = true; //添加 private void btnAppend_Click(object sender, EventArgs e) { try { //没果没有根元素 if (isPater) { string root = this.txtElement.Text.Trim(); this.trvXml.Nodes.Add(root); this.document.LoadXml(“《“ + root + “》《/“ + root + “》“); this.isPater = false; this.btnInsert.Enabled = true; this.btnRemove.Enabled = true; this.btnReplace.Enabled = true; this.btnSave.Enabled = true; this.trvXml.SelectedNode = this.trvXml.Nodes; this.txtElement.Clear(); } else { if (this.trvXml.SelectedNode != null) { string element = this.txtElement.Text.Trim(); this.selectNode.Nodes.Add(element); XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text); int nodeCount = nodelist.Count; //循环添加可能有多个元素 for (int i = 0; i 《 nodeCount; i++) { XmlNode node = this.document.CreateElement(element); nodelist.Item(i).AppendChild(node); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } //根据选中节点位置来更新树信息 private void trvXml_AfterSelect(object sender, TreeViewEventArgs e) { this.selectNode = e.Node; } //保存 private void btnSave_Click(object sender, EventArgs e) { //确定是否要保存 if (this.saveFileDialog1.ShowDialog() == DialogResult.OK) { try { string filePath = this.saveFileDialog1.FileName; this.document.Save(filePath); MessageBox.Show(“保存成功“); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } //插入 private void btnInsert_Click(object sender, EventArgs e) { try { if (this.trvXml.SelectedNode != null) { //找到当前选中节点的索引 string element = this.txtElement.Text.Trim(); this.selectNode.Parent.Nodes.Insert(this.selectNode.Index + 1, element); XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text); int nodeCount = nodelist.Count; //循环添加可能有多个元素 for (int i = 0; i 《 nodeCount; i++) { XmlNode node = this.document.CreateElement(element); //将指定节点插入选中节点之后 nodelist.Item(i).ParentNode.InsertAfter(node, nodelist.Item(i)); } this.txtElement.Clear(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } //替换 private void btnReplace_Click(object sender, EventArgs e) { try { //找到当前选中节点的索引 string element = this.txtElement.Text.Trim(); //先添加进去再删除它 this.selectNode.Parent.Nodes.Insert(this.selectNode.Index,element); this.trvXml.Nodes.Remove(this.selectNode); XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text); int nodeCount = nodelist.Count; //循环添加可能有多个元素 for (int i = 0; i 《 nodeCount; i++) { XmlNode node = this.document.CreateElement(element); //替换节点 nodelist.Item(i).ParentNode.RemoveChild(nodelist.Item(i)); nodelist.Item(i).ParentNode.InsertAfter(node, nodelist.Item(i)); } this.txtElement.Clear(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } //删除 private void btnRemove_Click(object sender, EventArgs e) { try { //如果全删除全完了,则需要重新添加根元素 if (this.trvXml.Nodes.Count 《 0) { this.isPater = true; } this.trvXml.Nodes.Remove(this.selectNode); XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text); int nodeCount = nodelist.Count; //循环添加可能有多个元素 for (int i = 0; i 《 nodeCount; i++) { nodelist.Item(i).ParentNode.RemoveChild(nodelist.Item(i)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }}
Delphi TreeView添加子节点
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; SelectedNode:TTreeNode;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);var node:array of TTreeNode;begin node := TreeView1.Items.AddChild(nil,’父节点1’); node := TreeView1.Items.AddChild(node,’子节点11’); node := TreeView1.Items.AddChild(node,’子节点12’); node := TreeView1.Items.AddChild(nil,’父节点2’); node := TreeView1.Items.AddChild(node,’子节点21’); node := TreeView1.Items.AddChild(node,’子节点22’);end;procedure TForm1.Button1Click(Sender: TObject);var node: TTreeNode; str1,str2:string;begin SelectedNode:=TreeView1.Selected; if SelectedNode.HasChildren then begin str1:= SelectedNode.Text; str2:= copy(SelectedNode.GetLastChild.Text, Length(SelectedNode.GetLastChild.Text),1); str2:=inttostr(strtoint(str2)+1); node := TreeView1.Items.AddChild(SelectedNode,str1+str2); end else node:=TreeView1.Items.AddChild(SelectedNode,SelectedNode.Text+’1’);end;end.接分 补 删除procedure TForm1.Button2Click(Sender: TObject);begin SelectedNode:=TreeView1.Selected; SelectedNode.Delete;end;
更多文章:
有哪些比较准确的手机地图导航软件?国内自驾游使用哪种导航最靠谱
2024年7月1日 07:52
绿松石为什么那么贵(怎么盘绿松石才正确 绿松石为什么那么贵)
2024年7月25日 11:46
importance的形容词(important有没有什么变化形式,比如ing形式或过去式等等,能把你知道的都写出来吗)
2024年7月15日 11:27
滑块轴承调节器(滑动轴承中的有一种是自动调心轴承,一般用在什么地方,举一些具体的例子)
2024年7月22日 04:20
数据分析师八大能力培养(什么类指标是电子商务数据监控的核心之一)
2024年6月26日 10:17
c语言12345输出54321(输入一个整数,将其逆序输出,去(输入12345输出54321)这道题怎么做啊求解)
2024年7月24日 01:21
strcmp函数会忽略大小写吗(if(strcmp(ch,“Y“)==0||strcmp(ch,“y“)==0))
2024年6月2日 02:20
snap翻译成中文(中国古代文言文言简意赅,为什么要发展成现代白话罗啰嗦嗦)
2024年6月6日 02:23
正则表达式6位数字怎么写(java 三位字母加6位数字的正则表达式怎么写)
2024年7月23日 23:14
企业微信直播一直数据加载中(进入企业微信直播显示数据加载中)
2024年7月11日 11:41
dede模板文件(dede网站 站内搜索时提示“模板文件不存在,无法解析”是怎么回事那位大师给指点一下)
2024年6月25日 07:39
concerta(Cash Cash的《Concerta》 歌词)
2024年7月10日 13:29
哈夫曼树的叶子结点怎么算(n个叶子结点的哈夫曼树有多少个结点)
2024年8月7日 00:05