C# TreeNode案例詳解
添加節(jié)點(diǎn)
private void Form1_Load(object sender, EventArgs e) { treeView1.LabelEdit = true;//可編輯狀態(tài)。 //添加一個(gè)節(jié)點(diǎn),這個(gè)結(jié)點(diǎn)是根節(jié)點(diǎn)。 TreeNode node = new TreeNode(); node.Text = "hope"; treeView1.Nodes.Add(node); TreeNode node1 = new TreeNode(); node1.Text = "hopeone"; TreeNode node11 = new TreeNode(); node11.Text = "hopeoneone"; TreeNode node2 = new TreeNode(); node2.Text = "hopetwo"; node1.Nodes.Add(node11);//在node1下面在添加一個(gè)結(jié)點(diǎn)。 node.Nodes.Add(node1);//node下的兩個(gè)子節(jié)點(diǎn)。 node.Nodes.Add(node2); TreeNode t = new TreeNode("basil");//作為根節(jié)點(diǎn)。 treeView1.Nodes.Add(t); TreeNode t1 = new TreeNode("basilone"); t.Nodes.Add(t1); TreeNode t2 = new TreeNode("basiltwo"); t.Nodes.Add(t2); }
private void Form1_Load(object sender, EventArgs e) { treeView1.LabelEdit = true;//可編輯狀態(tài)。 //添加一個(gè)節(jié)點(diǎn),這個(gè)結(jié)點(diǎn)是根節(jié)點(diǎn)。 TreeNode node = new TreeNode(); node.Text = "hope"; treeView1.Nodes.Add(node); TreeNode node1 = new TreeNode(); node1.Text = "hopeone"; TreeNode node11 = new TreeNode(); node11.Text = "hopeoneone"; TreeNode node2 = new TreeNode(); node2.Text = "hopetwo"; node1.Nodes.Add(node11);//在node1下面在添加一個(gè)結(jié)點(diǎn)。 node.Nodes.Add(node1);//node下的兩個(gè)子節(jié)點(diǎn)。 node.Nodes.Add(node2); TreeNode t = new TreeNode("basil");//作為根節(jié)點(diǎn)。 treeView1.Nodes.Add(t); TreeNode t1 = new TreeNode("basilone"); t.Nodes.Add(t1); TreeNode t2 = new TreeNode("basiltwo"); t.Nodes.Add(t2); }
刪除
private void button1_Click(object sender, EventArgs e) { //點(diǎn)擊該按鈕的時(shí)候,會(huì)移除選中項(xiàng) treeView1.Nodes.Remove(treeView1.SelectedNode); }
private void button1_Click(object sender, EventArgs e) { //點(diǎn)擊該按鈕的時(shí)候,會(huì)移除選中項(xiàng) treeView1.Nodes.Remove(treeView1.SelectedNode); }
修改
private void button2_Click(object sender, EventArgs e) { //點(diǎn)擊這個(gè)按鈕的時(shí)候,可以修改選中項(xiàng) //注意:在使用這個(gè)屬性的時(shí)候,必須設(shè)置treeView1.LabelEdit =true,否則會(huì)提示錯(cuò)誤。 treeView1.SelectedNode.BeginEdit(); }
private void button2_Click(object sender, EventArgs e) { //點(diǎn)擊這個(gè)按鈕的時(shí)候,可以修改選中項(xiàng) //注意:在使用這個(gè)屬性的時(shí)候,必須設(shè)置treeView1.LabelEdit =true,否則會(huì)提示錯(cuò)誤。 treeView1.SelectedNode.BeginEdit(); }
C#中Treeview判斷選擇的節(jié)點(diǎn)并執(zhí)行不同的方法
Treeview,點(diǎn)擊不同的節(jié)點(diǎn)(包括父節(jié)點(diǎn)和父節(jié)點(diǎn)下的子節(jié)點(diǎn))觸發(fā)不同的事件,執(zhí)行相應(yīng)的方法
方法1:
treeView1_AfterSelect事件就是treeView1中節(jié)點(diǎn)被選擇觸發(fā)的事件,e.Node指的是當(dāng)前選中的節(jié)點(diǎn),e.Node.Nodes指的是當(dāng)前選中節(jié)點(diǎn)的子節(jié)點(diǎn)集合。
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { //當(dāng)前選中的節(jié)點(diǎn)有父節(jié)點(diǎn),并且該父節(jié)點(diǎn)在相同級別的父節(jié)點(diǎn)中排行第一。 if (e.Node.Parent != null && e.Node.Parent.Index == 0) { //當(dāng)前選中節(jié)點(diǎn)在所有的兄弟節(jié)點(diǎn)中排第 一 if(e.Node.Index==0) { //調(diào)用相應(yīng)的方法(); } } //表示當(dāng)前節(jié)點(diǎn)沒有父節(jié)點(diǎn),并且在兄弟節(jié)點(diǎn)中排行第五(由零開始索引) if(e.Node.Parent==null&&e.Node.Index==4) { //調(diào)用相應(yīng)的方法(); } } }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { //當(dāng)前選中的節(jié)點(diǎn)有父節(jié)點(diǎn),并且該父節(jié)點(diǎn)在相同級別的父節(jié)點(diǎn)中排行第一。 if (e.Node.Parent != null && e.Node.Parent.Index == 0) { //當(dāng)前選中節(jié)點(diǎn)在所有的兄弟節(jié)點(diǎn)中排第 一 if(e.Node.Index==0) { //調(diào)用相應(yīng)的方法(); } } //表示當(dāng)前節(jié)點(diǎn)沒有父節(jié)點(diǎn),并且在兄弟節(jié)點(diǎn)中排行第五(由零開始索引) if(e.Node.Parent==null&&e.Node.Index==4) { //調(diào)用相應(yīng)的方法(); } } }
方法二:
通過節(jié)點(diǎn)的Name屬性來判斷具體是哪個(gè)節(jié)點(diǎn)被選擇,并執(zhí)行相應(yīng)的方法(這種方法效率高一些)
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { //說明當(dāng)前選中節(jié)點(diǎn)沒有子節(jié)點(diǎn) if(e.Node.Nodes.Count==0) { if(e.Node.name="aaa") { //執(zhí)行相應(yīng)的方法(); } else if(e.Node.Name="bbb") { //執(zhí)行相應(yīng)的方法(); } } }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { //說明當(dāng)前選中節(jié)點(diǎn)沒有子節(jié)點(diǎn) if(e.Node.Nodes.Count==0) { if(e.Node.name="aaa") { //執(zhí)行相應(yīng)的方法(); } else if(e.Node.Name="bbb") { //執(zhí)行相應(yīng)的方法(); } } }
C# 怎么判斷TreeView選中的是子節(jié)點(diǎn) ?并且是屬于哪個(gè)父節(jié)?
TreeNode selNode = tree.SelectedNode; if (selNode == null) { //防止空引用 return; } if (selNode.Parent != null) { //為有父親節(jié)點(diǎn)的, TreeNode parentNode = selNode.Parent;//得到父親節(jié)點(diǎn) if (selNode.Nodes.Count == 0) { //為沒有子節(jié)點(diǎn),即選中的節(jié)點(diǎn)為葉子節(jié)點(diǎn) } }
TreeNode selNode = tree.SelectedNode; if (selNode == null) { //防止空引用 return; } if (selNode.Parent != null) { //為有父親節(jié)點(diǎn)的, TreeNode parentNode = selNode.Parent;//得到父親節(jié)點(diǎn) if (selNode.Nodes.Count == 0) { //為沒有子節(jié)點(diǎn),即選中的節(jié)點(diǎn)為葉子節(jié)點(diǎn) } }
C#.Net中TreeView控件右鍵選擇節(jié)點(diǎn)問題處理
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button==MouseButtons.Right) { TreeNode tn=treeView1.GetNodeAt(e.X,e.Y); if(tn!=null)treeView1.SelectedNode = tn; } }
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button==MouseButtons.Right) { TreeNode tn=treeView1.GetNodeAt(e.X,e.Y); if(tn!=null)treeView1.SelectedNode = tn; } }
treeView默認(rèn) 展開
treeView1.ExpandAll();
默認(rèn)選中TreeVIew中的一個(gè)節(jié)點(diǎn)
//先找到你要設(shè)置選中的節(jié)點(diǎn) TreeNode tn = treeView1.Nodes[3]; //把要設(shè)置的節(jié)點(diǎn)給SelectedNode this.treeView1.SelectedNode = tn; //this.TreeView1.SelectedNodeIndex="";
TreeView,左鍵單擊節(jié)點(diǎn)時(shí)可修改節(jié)點(diǎn)名稱
TreeView本身可支持左鍵修改名稱 在初始化時(shí)設(shè)置: TreeView.LabelEdit = true; 這樣應(yīng)用程序的treeview生成以后就支持單擊節(jié)點(diǎn)修改。
如果不想左鍵修改,可在treeView1_MouseDown中設(shè)置treeView1.LabelEdit = false; 右鍵菜單 重命名 treeView1.LabelEdit = true; treeView.SelectedNode.BeginEdit();
TreeVIew清空
TreeView.Nodes.Clear()
到此這篇關(guān)于C# TreeNode案例詳解的文章就介紹到這了,更多相關(guān)C# TreeNode使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02Java中一個(gè)for語句導(dǎo)致無窮大死循環(huán)的例子
這篇文章主要介紹了Java中一個(gè)for語句導(dǎo)致無窮大死循環(huán)的例子,本文給出的是一個(gè)很特別的例子,這個(gè)例子會(huì)跟你所想的結(jié)果不一樣,需要的朋友可以參考下2015-06-06利用Java工具類Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能
這篇文章主要介紹了利用Java工具類Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能,利用Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn),校驗(yàn)的Servlet與今天的第一篇是一樣的,唯一就是驗(yàn)證碼的生成是不一樣的,利用Hutool生成驗(yàn)證碼更快捷.需要的朋友可以參考下2022-10-10MapStruct實(shí)體轉(zhuǎn)換及List轉(zhuǎn)換的方法講解
今天小編就為大家分享一篇關(guān)于MapStruct實(shí)體轉(zhuǎn)換及List轉(zhuǎn)換的方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03