網站首頁 編程語言 正文
前言
TreeView控件在窗體應用里面使用也是頻率比較高的,我們在使用TreeView一般是對資源的分層展示,類似數據結構里面樹的凹入表示法。很多公司都是使用TreeView控件作為文件顯示信息的分級視圖,如同Windows里的資源管理器的目錄。TreeView控件中的各項信息都有一個與之相關的Node對象。TreeView顯示Node對象的分層目錄結構,每個Node對象均由一個Label對象和其相關的位圖組成。在建立TreeView控件后,可以展開和折疊、顯示或隱藏其中的節點。TreeView控件一般用來顯示文件和目錄結構、文檔中的類層次、索引中的層次和其他具有分層目錄結構的信息。
1.TreeView控件使用
1.1 TreeView控件常用的屬性
Index :獲取樹節點在樹節點集合中的位置
Nodes :獲取分配給樹視圖控件的樹節點集合
Parent :獲取或設置控件的父容器
SelectedNode :獲取或設置當前在樹視圖控件中選定的樹節點
ExpandAll :展開所有樹節點
Checked: 獲取或設置一個值,用以指示樹節點是否處于選中狀態
Text :獲取或設置在樹節點標簽中顯示的文本
Expand: 展開樹節點
Clear: 清空樹
Remove :從樹視圖控件中移除當前樹節點。
1.2 創建窗體文件并修改名稱
2.設計界面
我們采用簡單案例來實現效果
3.添加和刪除數據
3.1 點擊treeView編輯結點
3.2 在TreeView編輯器添加數據
注:我們這里屬于靜態添加數據,后面做的刪除或者是添加也是靜態的,后面做到刪除是不起作用的
3.3 TreeView控件添加根結點操作
注:博主這里的添加并未添加到數據庫,只是做一個靜態的展示并未靜態寫入treeView,存在內存里結束就釋放了
3.4 TreeView控件添加子結點操作
我們需要獲取我們選中的結點判斷它是否為空,不為空就代表有根結點可以添加,沒有就返回選擇我們需要添加子節點。
3.5 TreeView控件刪除操作
這里我們需要判斷我們選擇的結點的父結點是否為空,為空代表這個結點是根結點需要整個刪除,不為空代表為子結點,我們從父結點找到子結點刪除。
3.6 TreeView控件清空樹操作
我們這里直接使用clear進行刪除就可以了。沒有其他操作
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("請選擇需要添加子節點");
}
}
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();
}
}
}
總結
TreeView控件講解博主并未使用數據庫進行操作,而是簡單的使用變量來操作,我們在使用數據庫是需要使用結點的深度建立,每一層可能會有一個表,最終到最底層才是我們的數據,我們獲取每層Name生成樹,實現資源的凹入表示法,
原文鏈接:https://juejin.cn/post/7127991872319914020
相關推薦
- 2022-08-04 C#中Backgroundworker與Thread的區別_C#教程
- 2022-11-14 mac 常用終端命令
- 2023-03-28 Unity3D開發之獲取所有的子對象的方法詳解_C#教程
- 2022-11-18 redis批量操作pipeline管道操作方法_Redis
- 2022-12-01 Go?sync?WaitGroup使用深入理解_Golang
- 2022-05-12 tp5 二級項目目錄配置nginx偽靜態
- 2023-06-18 C#?System.TypeInitializationException?異常處理方案_C#教程
- 2023-07-05 React hooks之useEffect、useMemo優化技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支