生活随笔
收集整理的這篇文章主要介紹了
C# TreeNode的使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??????????????????????????????
目錄(?)[+]
C中Treeview判斷選擇的節點并執行不同的方法C 怎么判斷TreeView選中的是子節點 并且是屬于哪個父節 添加節點 [csharp] view plaincopy print?
private?void?Form1_Load(object?sender,?EventArgs?e)??{??????treeView1.LabelEdit?=?true;??????????????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);????????node.Nodes.Add(node1);??????node.Nodes.Add(node2);??????????TreeNode?t?=?new?TreeNode("basil");??????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;//可編輯狀態。//添加一個節點,這個結點是根節點。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下面在添加一個結點。node.Nodes.Add(node1);//node下的兩個子節點。node.Nodes.Add(node2);TreeNode t = new TreeNode("basil");//作為根節點。treeView1.Nodes.Add(t);TreeNode t1 = new TreeNode("basilone");t.Nodes.Add(t1);TreeNode t2 = new TreeNode("basiltwo");t.Nodes.Add(t2);}
刪除
[csharp] view plaincopy print?
private?void?button1_Click(object?sender,?EventArgs?e)????????{????????????????????????treeView1.Nodes.Remove(treeView1.SelectedNode);????????}?? private void button1_Click(object sender, EventArgs e){//點擊該按鈕的時候,會移除選中項treeView1.Nodes.Remove(treeView1.SelectedNode);}
修改
[csharp] view plaincopy print?
private?void?button2_Click(object?sender,?EventArgs?e)?????????{???????????????????????????????????????treeView1.SelectedNode.BeginEdit();?????????}?? private void button2_Click(object sender, EventArgs e){//點擊這個按鈕的時候,可以修改選中項//注意:在使用這個屬性的時候,必須設置treeView1.LabelEdit =true,否則會提示錯誤。treeView1.SelectedNode.BeginEdit();}
C#中Treeview判斷選擇的節點并執行不同的方法
Treeview,點擊不同的節點(包括父節點和父節點下的子節點)觸發不同的事件,執行相應的方法
方法1:
treeView1_AfterSelect事件就是treeView1中節點被選擇觸發的事件,e.Node指的是當前選中的節點,e.Node.Nodes指的是當前選中節點的子節點集合。
[csharp] view plaincopy print?
private?void?treeView1_AfterSelect(object?sender,?TreeViewEventArgs?e)????????{????????????if?(e.Action?==?TreeViewAction.ByMouse)????????????{????????????????????????????????if?(e.Node.Parent?!=?null?&&?e.Node.Parent.Index?==?0)????????????????{??????????????????????????????????????????if(e.Node.Index==0)?????????????????????{?????????????????????????????????????????????}????????????????}????????????????????????????????if(e.Node.Parent==null&&e.Node.Index==4)????????????????{????????????????????????????????}????????????}????????}?? private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){if (e.Action == TreeViewAction.ByMouse){//當前選中的節點有父節點,并且該父節點在相同級別的父節點中排行第一。if (e.Node.Parent != null && e.Node.Parent.Index == 0){ //當前選中節點在所有的兄弟節點中排第 一if(e.Node.Index==0) {//調用相應的方法();}}//表示當前節點沒有父節點,并且在兄弟節點中排行第五(由零開始索引)if(e.Node.Parent==null&&e.Node.Index==4){//調用相應的方法();}}}
方法二: 通過節點的Name屬性來判斷具體是哪個節點被選擇,并執行相應的方法(這種方法效率高一些)
[csharp] view plaincopy print?
private?void?treeView1_AfterSelect(object?sender,?TreeViewEventArgs?e)??????????{???????????????if?(e.Action?==?TreeViewAction.ByMouse)???????????????{??????????????????????????????????????if(e.Node.Nodes.Count==0)???????????????????{????????????????????????if(e.Node.name="aaa")????????????????????????{?????????????????????????????????????????????????????}????????????????????????else?if(e.Node.Name="bbb")????????????????????????{?????????????????????????????????????????????????????}???????????????????}??????????????}???????????? private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){if (e.Action == TreeViewAction.ByMouse){//說明當前選中節點沒有子節點if(e.Node.Nodes.Count==0){if(e.Node.name="aaa"){//執行相應的方法();}else if(e.Node.Name="bbb"){//執行相應的方法();}}}
C# 怎么判斷TreeView選中的是子節點 ?并且是屬于哪個父節?
[csharp] view plaincopy print?
TreeNode?selNode?=?tree.SelectedNode;??if?(selNode?==?null)??{????????????return;??}??if?(selNode.Parent?!=?null)??{????????????TreeNode?parentNode?=?selNode.Parent;??????if?(selNode.Nodes.Count?==?0)??????{????????????????}??}?? TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{//防止空引用return;
}
if (selNode.Parent != null)
{//為有父親節點的,TreeNode parentNode = selNode.Parent;//得到父親節點 if (selNode.Nodes.Count == 0){//為沒有子節點,即選中的節點為葉子節點}
}
C#.Net中TreeView控件右鍵選擇節點問題處理
[csharp] view plaincopy print?
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默認 展開 [csharp] view plaincopy print?
treeView1.ExpandAll();?? treeView1.ExpandAll();
默認選中TreeVIew中的一個節點
[csharp] view plaincopy print?
??TreeNode?tn?=?treeView1.Nodes[3];????this.treeView1.SelectedNode?=?tn;???? //先找到你要設置選中的節點
TreeNode tn = treeView1.Nodes[3];
//把要設置的節點給SelectedNode
this.treeView1.SelectedNode = tn;
//this.TreeView1.SelectedNodeIndex="";
TreeView,左鍵單擊節點時可修改節點名稱
TreeView本身可支持左鍵修改名稱
在初始化時設置:
TreeView.LabelEdit = true;
這樣應用程序的treeview生成以后就支持單擊節點修改。</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="font-size: 14px; white-space: pre-wrap; word-wrap: break-word; color: rgb(54, 46, 43); line-height: 26px; background-color: rgb(255, 255, 255);">如果不想左鍵修改,可在treeView1_MouseDown中設置treeView1.LabelEdit = false;?<pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(54, 46, 43); line-height: 26px; background-color: rgb(255, 255, 255);"><strong><span style="font-size:18px;">右鍵菜單 重命名</span></strong>
<pre name="code" class="csharp" style="font-size: 14px;">treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();
<strong><span style="font-size:18px;">TreeVIew清空</span></strong>
[csharp] view plaincopy print?
TreeView.Nodes.Clear()?? TreeView.Nodes.Clear()
總結
以上是生活随笔為你收集整理的C# TreeNode的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。