C#?TreeView控件使用技巧匯總
前言
TreeView控件在窗體應(yīng)用里面使用也是頻率比較高的,我們?cè)谑褂肨reeView一般是對(duì)資源的分層展示,類似數(shù)據(jù)結(jié)構(gòu)里面樹的凹入表示法。很多公司都是使用TreeView控件作為文件顯示信息的分級(jí)視圖,如同Windows里的資源管理器的目錄。TreeView控件中的各項(xiàng)信息都有一個(gè)與之相關(guān)的Node對(duì)象。TreeView顯示Node對(duì)象的分層目錄結(jié)構(gòu),每個(gè)Node對(duì)象均由一個(gè)Label對(duì)象和其相關(guān)的位圖組成。在建立TreeView控件后,可以展開和折疊、顯示或隱藏其中的節(jié)點(diǎn)。TreeView控件一般用來(lái)顯示文件和目錄結(jié)構(gòu)、文檔中的類層次、索引中的層次和其他具有分層目錄結(jié)構(gòu)的信息。
1.TreeView控件使用
1.1 TreeView控件常用的屬性
Index :獲取樹節(jié)點(diǎn)在樹節(jié)點(diǎn)集合中的位置
Nodes :獲取分配給樹視圖控件的樹節(jié)點(diǎn)集合
Parent :獲取或設(shè)置控件的父容器
SelectedNode :獲取或設(shè)置當(dāng)前在樹視圖控件中選定的樹節(jié)點(diǎn)
ExpandAll :展開所有樹節(jié)點(diǎn)
Checked: 獲取或設(shè)置一個(gè)值,用以指示樹節(jié)點(diǎn)是否處于選中狀態(tài)
Text :獲取或設(shè)置在樹節(jié)點(diǎn)標(biāo)簽中顯示的文本
Expand: 展開樹節(jié)點(diǎn)
Clear: 清空樹
Remove :從樹視圖控件中移除當(dāng)前樹節(jié)點(diǎn)。
1.2 創(chuàng)建窗體文件并修改名稱
2.設(shè)計(jì)界面
我們采用簡(jiǎn)單案例來(lái)實(shí)現(xiàn)效果
3.添加和刪除數(shù)據(jù)
3.1 點(diǎn)擊treeView編輯結(jié)點(diǎn)
3.2 在TreeView編輯器添加數(shù)據(jù)
注:我們這里屬于靜態(tài)添加數(shù)據(jù),后面做的刪除或者是添加也是靜態(tài)的,后面做到刪除是不起作用的
3.3 TreeView控件添加根結(jié)點(diǎn)操作
注:博主這里的添加并未添加到數(shù)據(jù)庫(kù),只是做一個(gè)靜態(tài)的展示并未靜態(tài)寫入treeView,存在內(nèi)存里結(jié)束就釋放了
3.4 TreeView控件添加子結(jié)點(diǎn)操作
我們需要獲取我們選中的結(jié)點(diǎn)判斷它是否為空,不為空就代表有根結(jié)點(diǎn)可以添加,沒有就返回選擇我們需要添加子節(jié)點(diǎn)。
3.5 TreeView控件刪除操作
這里我們需要判斷我們選擇的結(jié)點(diǎn)的父結(jié)點(diǎn)是否為空,為空代表這個(gè)結(jié)點(diǎn)是根結(jié)點(diǎn)需要整個(gè)刪除,不為空代表為子結(jié)點(diǎn),我們從父結(jié)點(diǎn)找到子結(jié)點(diǎn)刪除。
3.6 TreeView控件清空樹操作
我們這里直接使用clear進(jìn)行刪除就可以了。沒有其他操作
4.整體效果展示
4.1代碼演示
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TreeTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { TreeNode treeNode = new TreeNode(textBox1.Text, 2, 2); treeView1.Nodes.Add(treeNode); treeView1.Select(); } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { } private void button2_Click(object sender, EventArgs e) { TreeNode selectdnode = treeView1.SelectedNode; if(selectdnode!=null) { TreeNode chnode = new TreeNode(textBox2.Text, 2, 2); selectdnode.Nodes.Add(chnode); selectdnode.Expand(); treeView1.Select(); } else { MessageBox.Show("請(qǐng)選擇需要添加子節(jié)點(diǎn)"); } } private void button3_Click(object sender, EventArgs e) { TreeNode selectnode = treeView1.SelectedNode; TreeNode parentnode = selectnode.Parent; if(parentnode == null) { treeView1.Nodes.Remove(selectnode); } else { parentnode.Nodes.Remove(selectnode); } treeView1.Select(); } private void button4_Click(object sender, EventArgs e) { treeView1.Nodes.Clear(); } private void button5_Click(object sender, EventArgs e) { this.textBox1.Clear(); this.textBox2.Clear(); } } }
總結(jié)
TreeView控件講解博主并未使用數(shù)據(jù)庫(kù)進(jìn)行操作,而是簡(jiǎn)單的使用變量來(lái)操作,我們?cè)谑褂脭?shù)據(jù)庫(kù)是需要使用結(jié)點(diǎn)的深度建立,每一層可能會(huì)有一個(gè)表,最終到最底層才是我們的數(shù)據(jù),我們獲取每層Name生成樹,實(shí)現(xiàn)資源的凹入表示法,
到此這篇關(guān)于C# TreeView控件使用技巧匯總的文章就介紹到這了,更多相關(guān)C# TreeView控件 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C# TreeView控件使用代碼
- c# TreeView添加右鍵快鍵菜單有兩種方法
- C# TreeView讀取數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例
- C#中TreeView實(shí)現(xiàn)適合兩級(jí)節(jié)點(diǎn)的選中節(jié)點(diǎn)方法
- C#實(shí)現(xiàn)TreeView節(jié)點(diǎn)拖拽的方法
- C#自定義DataGridViewColumn顯示TreeView
- C# TreeView無(wú)限目錄樹實(shí)現(xiàn)方法
- c# WPF中的TreeView使用詳解
- C#利用TreeView控件實(shí)現(xiàn)目錄跳轉(zhuǎn)
相關(guān)文章
c# Newtonsoft 六個(gè)值得使用的特性(下)
這篇文章主要介紹了c# Newtonsoft 六個(gè)值得使用的特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06基于c# 類、接口、結(jié)構(gòu)的聯(lián)系與區(qū)別詳解
本篇文章是對(duì)c#中類與接口以及結(jié)構(gòu)的聯(lián)系與區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06舊項(xiàng)目升級(jí)新版Unity2021導(dǎo)致Visual?Studio無(wú)法使用的問題
在項(xiàng)目開發(fā)過程中,不可避免的會(huì)升級(jí)開發(fā)工具。這次我在舊項(xiàng)目版本升級(jí)到新版Unity2021.2.x時(shí),出現(xiàn)Visual?Studio無(wú)法定位等問題,這里我給大家分享下解決方法,舊項(xiàng)目升級(jí)新版Unity2021導(dǎo)致Visual?Studio無(wú)法使用的問題,需要的朋友可以參考下2021-12-12