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控件一般用來顯示文件和目錄結(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)單案例來實(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ù)庫,只是做一個(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ù)庫進(jìn)行操作,而是簡(jiǎn)單的使用變量來操作,我們?cè)谑褂脭?shù)據(jù)庫是需要使用結(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談static a[n*m]={0};中static的作用
下面小編就為大家?guī)硪黄獪\談static a[n*m]={0};中static的作用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框
這篇文章主要介紹了C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
C#中調(diào)用VB中Inputbox類的實(shí)現(xiàn)方法
本文主要介紹在項(xiàng)目中引用Microsoft.VisualBasic,間接使用VB中的各種類庫的方法,或者自己創(chuàng)建函數(shù),調(diào)用自定義方法,以實(shí)現(xiàn)InputBox相關(guān)的功能。2016-05-05
WPF利用DrawingContext實(shí)現(xiàn)繪制溫度計(jì)
這篇文章主要為大家詳細(xì)介紹了如何利用WPF和DrawingContext實(shí)現(xiàn)繪制溫度計(jì),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下2022-09-09
C#單例模式Singleton的實(shí)現(xiàn)詳解
單例模式(Singleton?Pattern)是日常開發(fā)中最簡(jiǎn)單的設(shè)計(jì)模式之一,它提供了一種創(chuàng)建對(duì)象的最佳方式,本文主要為大家介紹的是C#單例模式的實(shí)現(xiàn)方法,需要的可以參考一下2023-05-05
C#使用throw和throw?ex拋出異常的區(qū)別介紹
這篇文章介紹了C#使用throw和throw?ex拋出異常的區(qū)別,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10

