本文主要介紹treeView控件中,添加,修改、刪除節點的操作,
首先當窗體加載的時候,我們添加上圖中所示的節點。
當點擊“Delete the Selected”按鈕時,被選中的節點將被刪除。
當點擊“Edit the Selected”按鈕式,被選中的節點變成修改狀態,此時我們可以對其修改。
其代碼如下:
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 = newTreeNode("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 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();
}
關於控件Treeview,如何在點擊不同的節點(包括父節點和父節點下的子節點)觸發不同的事件,執行相應的方法?
方法1:
treeView1_AfterSelect事件就是treeView1中節點被選擇觸發的事件,e.Node指的是當前選中的節點,e.Node.Nodes指的是當前選中節點的子節點集合。
例如:
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屬性來判斷具體是哪個節點被選擇,並執行相應的方法(這種方法效率高一些)
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選中的是子節點 ?並且是屬於哪個父節點?
TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{
//防止空引用
return;
}
if (selNode.Parent != null)
{
//為有父親節點的,
TreeNode parentNode = selNode.Parent;//得到父親節點
if (selNode.Nodes.Count == 0)
{
//為沒有子節點,即選中的節點為葉子節點
}
}
- 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;
- }
- }
treeView1.ExpandAll();
//先找到你要設置選中的節點
TreeNode tn = treeView1.Nodes[3];
//把要設置的節點給SelectedNode
this.treeView1.SelectedNode = tn;
//this.TreeView1.SelectedNodeIndex="";TreeView本身可支持左鍵修改名稱
在初始化時設置:
TreeView.LabelEdit = true;
這樣應用程序的treeview生成以后就支持單擊節點修改。
如果不想左鍵修改,可在treeView1_MouseDown中設置treeView1.LabelEdit = false;
右鍵菜單 重命名
treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();
TreeVIew清空
TreeView.Nodes.Clear()