標籤:des winform style blog class code
一:實現功能,獲得選中節點,在選中節點下添加節點,摺疊,展開,刪除,得到選中節點下checked項,選中根節點其下節點也選中,表徵圖。
二:相關代碼
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TreeView{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 事件:獲得選中節點的文本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_nodeText_Click(object sender, EventArgs e) { treeView1.HideSelection = false;//將選中的節點顯示為選中的狀態,預設是隱藏顯示狀態 MessageBox.Show(treeView1.SelectedNode.Text);//nodes是節點的集合,每個分支是一個節點 } /// <summary> /// 事件:添加節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_addNode_Click(object sender, EventArgs e) { //treeView1.Nodes.Add("紅馬車");//在根節點添加 //MessageBox.Show(treeView1.Nodes.Count.ToString());//得到根節點的數量 //treeView1.Nodes[0].Nodes[0].Nodes.Add("紅馬車");//在根節點的第0根節點下的第0子節點下添加 //treeView1.Nodes[2].Nodes.Add("紅馬車");//在第2根節點下添加 if (treeView1.SelectedNode != null)//是否被選中 { treeView1.SelectedNode.Nodes.Add(tb_nodeText.Text);//在選中的子節點下添加 treeView1.ExpandAll();//自動延伸所有的項 } } /// <summary> /// 事件:自動載入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { treeView1.HideSelection = false;//顯示選中的陰影 treeView1.ExpandAll();//自動延伸所有的項 treeView1.CheckBoxes = true;//顯示選中框 treeView1.Nodes[0].Nodes[1].SelectedImageIndex = 3; treeView1.Nodes[0].Nodes[1].ImageIndex = 2; } /// <summary> /// 事件:展開全部節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_ExpandAll_Click(object sender, EventArgs e) { treeView1.ExpandAll(); } /// <summary> /// 事件:摺疊全部 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_CollapseAll_Click(object sender, EventArgs e) { treeView1.CollapseAll(); } /// <summary> /// 事件:展開當前選中的同級子節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_expandNow_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null) { treeView1.SelectedNode.Expand(); //treeView1.SelectedNode.ExpandAll();//展開當前選中的所有的子節點 } } /// <summary> /// 事件:摺疊當前同級節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_CollapseNow_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null) { treeView1.SelectedNode.Collapse(); } } /// <summary> /// 事件:刪除節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_nodeDelete_Click(object sender, EventArgs e) { //treeView1.Nodes[0].Remove();//刪除根節點的第0節點 treeView1.Nodes[0].Nodes[0].Remove();//第0個根節點下的第0個節點 } /// <summary> /// 事件:刪除選中的節點 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_deleteSelectNode_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null) { treeView1.SelectedNode.Remove(); } } /// <summary> /// 事件:查看選中節點選中的同級項 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_showChecked_Click(object sender, EventArgs e) { string str = "選中了:"; if (treeView1.SelectedNode != null) { foreach (TreeNode tn in treeView1.SelectedNode.Nodes) { if (tn.Checked == true) { str += tn.Text; } } MessageBox.Show(str); } } /// <summary> /// 事件:選中根節點該節點的子節點也選中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)//只要有選中就會觸發 { foreach (TreeNode tn in e.Node.Nodes) { tn.Checked = e.Node.Checked;//根節點的選中狀態給子節點 } } }}