C# TreeNode案例詳解
添加節(jié)點
private void Form1_Load(object sender, EventArgs e)
{
treeView1.LabelEdit = true;//可編輯狀態(tài)。
//添加一個節(jié)點,這個結(jié)點是根節(jié)點。
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下面在添加一個結(jié)點。
node.Nodes.Add(node1);//node下的兩個子節(jié)點。
node.Nodes.Add(node2);
TreeNode t = new TreeNode("basil");//作為根節(jié)點。
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)。
//添加一個節(jié)點,這個結(jié)點是根節(jié)點。
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下面在添加一個結(jié)點。
node.Nodes.Add(node1);//node下的兩個子節(jié)點。
node.Nodes.Add(node2);
TreeNode t = new TreeNode("basil");//作為根節(jié)點。
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)
{
//點擊該按鈕的時候,會移除選中項
treeView1.Nodes.Remove(treeView1.SelectedNode);
}
private void button1_Click(object sender, EventArgs e)
{
//點擊該按鈕的時候,會移除選中項
treeView1.Nodes.Remove(treeView1.SelectedNode);
}
修改
private void button2_Click(object sender, EventArgs e)
{
//點擊這個按鈕的時候,可以修改選中項
//注意:在使用這個屬性的時候,必須設置treeView1.LabelEdit =true,否則會提示錯誤。
treeView1.SelectedNode.BeginEdit();
}
private void button2_Click(object sender, EventArgs e)
{
//點擊這個按鈕的時候,可以修改選中項
//注意:在使用這個屬性的時候,必須設置treeView1.LabelEdit =true,否則會提示錯誤。
treeView1.SelectedNode.BeginEdit();
}
C#中Treeview判斷選擇的節(jié)點并執(zhí)行不同的方法
Treeview,點擊不同的節(jié)點(包括父節(jié)點和父節(jié)點下的子節(jié)點)觸發(fā)不同的事件,執(zhí)行相應的方法
方法1:
treeView1_AfterSelect事件就是treeView1中節(jié)點被選擇觸發(fā)的事件,e.Node指的是當前選中的節(jié)點,e.Node.Nodes指的是當前選中節(jié)點的子節(jié)點集合。
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
//當前選中的節(jié)點有父節(jié)點,并且該父節(jié)點在相同級別的父節(jié)點中排行第一。
if (e.Node.Parent != null && e.Node.Parent.Index == 0)
{
//當前選中節(jié)點在所有的兄弟節(jié)點中排第 一
if(e.Node.Index==0)
{
//調(diào)用相應的方法();
}
}
//表示當前節(jié)點沒有父節(jié)點,并且在兄弟節(jié)點中排行第五(由零開始索引)
if(e.Node.Parent==null&&e.Node.Index==4)
{
//調(diào)用相應的方法();
}
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
//當前選中的節(jié)點有父節(jié)點,并且該父節(jié)點在相同級別的父節(jié)點中排行第一。
if (e.Node.Parent != null && e.Node.Parent.Index == 0)
{
//當前選中節(jié)點在所有的兄弟節(jié)點中排第 一
if(e.Node.Index==0)
{
//調(diào)用相應的方法();
}
}
//表示當前節(jié)點沒有父節(jié)點,并且在兄弟節(jié)點中排行第五(由零開始索引)
if(e.Node.Parent==null&&e.Node.Index==4)
{
//調(diào)用相應的方法();
}
}
}
方法二:
通過節(jié)點的Name屬性來判斷具體是哪個節(jié)點被選擇,并執(zhí)行相應的方法(這種方法效率高一些)
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
//說明當前選中節(jié)點沒有子節(jié)點
if(e.Node.Nodes.Count==0)
{
if(e.Node.name="aaa")
{
//執(zhí)行相應的方法();
}
else if(e.Node.Name="bbb")
{
//執(zhí)行相應的方法();
}
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
//說明當前選中節(jié)點沒有子節(jié)點
if(e.Node.Nodes.Count==0)
{
if(e.Node.name="aaa")
{
//執(zhí)行相應的方法();
}
else if(e.Node.Name="bbb")
{
//執(zhí)行相應的方法();
}
}
}
C# 怎么判斷TreeView選中的是子節(jié)點 ?并且是屬于哪個父節(jié)?
TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{
//防止空引用
return;
}
if (selNode.Parent != null)
{
//為有父親節(jié)點的,
TreeNode parentNode = selNode.Parent;//得到父親節(jié)點
if (selNode.Nodes.Count == 0)
{
//為沒有子節(jié)點,即選中的節(jié)點為葉子節(jié)點
}
}
TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{
//防止空引用
return;
}
if (selNode.Parent != null)
{
//為有父親節(jié)點的,
TreeNode parentNode = selNode.Parent;//得到父親節(jié)點
if (selNode.Nodes.Count == 0)
{
//為沒有子節(jié)點,即選中的節(jié)點為葉子節(jié)點
}
}
C#.Net中TreeView控件右鍵選擇節(jié)點問題處理
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默認 展開
treeView1.ExpandAll();
默認選中TreeVIew中的一個節(jié)點
//先找到你要設置選中的節(jié)點 TreeNode tn = treeView1.Nodes[3]; //把要設置的節(jié)點給SelectedNode this.treeView1.SelectedNode = tn; //this.TreeView1.SelectedNodeIndex="";
TreeView,左鍵單擊節(jié)點時可修改節(jié)點名稱
TreeView本身可支持左鍵修改名稱 在初始化時設置: TreeView.LabelEdit = true; 這樣應用程序的treeview生成以后就支持單擊節(jié)點修改。
如果不想左鍵修改,可在treeView1_MouseDown中設置treeView1.LabelEdit = false; 右鍵菜單 重命名 treeView1.LabelEdit = true; treeView.SelectedNode.BeginEdit();
TreeVIew清空
TreeView.Nodes.Clear()
到此這篇關于C# TreeNode案例詳解的文章就介紹到這了,更多相關C# TreeNode使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于Spring的@Transaction導致數(shù)據(jù)庫回滾全部生效問題(又刪庫跑路)
使用@Transactional一鍵開啟聲明式事務, 這就真的事務生效了?過于信任框架總有“意外驚喜”。本文通過案例給大家詳解關于Spring的@Transaction導致數(shù)據(jù)庫回滾全部生效問題,感興趣的朋友一起看看吧2021-05-05
Java多線程之 FutureTask:帶有返回值的函數(shù)定義和調(diào)用方式
這篇文章主要介紹了Java多線程之 FutureTask:帶有返回值的函數(shù)定義和調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Java數(shù)據(jù)類型實現(xiàn)自動與強制轉(zhuǎn)換的示例代碼
Java數(shù)據(jù)類型之間的轉(zhuǎn)換有自動轉(zhuǎn)換和強制類型轉(zhuǎn)換,這篇文章主要給大家介紹Java數(shù)據(jù)類型如何實現(xiàn)自動轉(zhuǎn)換與強制轉(zhuǎn)換,需要的朋友可以參考下2023-05-05
spring boot @PathVariable傳遞帶反斜杠參數(shù) / 的處理
這篇文章主要介紹了spring boot @PathVariable傳遞帶反斜杠參數(shù) / 的處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
SpringSecurity Jwt Token 自動刷新的實現(xiàn)
這篇文章主要介紹了SpringSecurity Jwt Token 自動刷新的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
idea創(chuàng)建springboot項目(版本只能選擇17和21)的解決方法
idea2023創(chuàng)建spring boot項目時,java版本無法選擇11,本文主要介紹了idea創(chuàng)建springboot項目(版本只能選擇17和21),下面就來介紹一下解決方法,感興趣的可以了解一下2024-01-01

