Visual Studio C# WinForm开发入门(6):TreeView 控件使用

news2025/1/15 13:54:04

TreeView控件用树显示节点层次。
例如:顶级目录是根(C:),C盘下的每个子目录都是子节点,而每个子目录又都有自己的子节点
TreeView属性和方法:

属性说明
CheckBoxes表示节点旁边是否出现复选框
ImageList指定一个包含节点图标的ImageList对象。ImageList对象是一个包含Image对象的集合
Nodes将控件中的TreeNode集合作为TreeNodeCollection返回
SelectedNode被选中的节点

常用事件:
AfterSelect:当所选节点发生变化时产生

TreeNode属性和方法:

TreeNode属性说明
Checked表示是否选中了TreeNode
FirstNode指定Nodes集合众的第一个节点
FullPath节点从数根开始的路径
ImageIndex当去选一个节点时,指定TreeView的ImageList中要显示的图像的索引
LastNode指定Nodes集合中的最后一个节点
NextNode下一个同胞节点
Nodes包含在当前节点中的TreeNode集合
PrevNode前一个同胞节点
SelectedImageIndex当选择一个节点时,指定TreeView的ImageList中要显示的图像的索引
Text指定TreeNode的文本
TreeNode方法说明
Collapse加载时缩合节点
Expand展开节点
ExpandAll展开节点的所有子节点
GetNodeCount返回子节点个数

实例
输入一个本机文件目录,用TreeView显示该目录的所有文件夹

1、添加一个Label控件,Text属性改为:“文件路径:”。
2、添加一个TextBox控件,适当拉长,Name属性改为inputTextBox
3、添加一个Button控件,Text属性改为:“确定”,Name属性改为enterButton
4、添加一个TreeView控件,适当调整大小,完成后如下图:
在这里插入图片描述

5、双击Button控件,编写Click事件,总体程序如下:

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;

using System.IO;//添加

namespace TreeView 控件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void enterButton_Click(object sender, EventArgs e)
        {
            directoryTreeView.Nodes.Clear();// 每次确定时需要刷新内容
            string inputText = inputTextBox.Text; // 获得输入框的内容
            // 文件路径存在
            if (Directory.Exists(inputText))
            {
                TreeNode rootNode = new TreeNode(inputText); // 创建树节点
                directoryTreeView.Nodes.Add(rootNode); // 加入视图
                FindDirectory(inputText, rootNode);  //通过递归函数进行目录的遍历
            }
            // 文件路径不存在
            else
            {
                MessageBox.Show("输入目录不存在!!!");
                inputTextBox.Clear(); // 当文件目录不存在时清空控件内容
                directoryTreeView.Nodes.Clear();
            }
        }

        // 递归函数 遍历当前目录
        void FindDirectory(string nowDirectory, TreeNode parentNode)
        {
            try  // 当文件目录不可访问时,需要捕获异常
            {
                // 获取当前目录下的所有文件夹数组
                string[] directoryArray = Directory.GetDirectories(nowDirectory);
                if (directoryArray.Length > 0)
                {
                    foreach (string item in directoryArray)
                    {
                        // 遍历数组,将节点添加到父亲节点的
                        string str = Path.GetFileNameWithoutExtension(item);
                        TreeNode node = new TreeNode(str);
                        parentNode.Nodes.Add(node);
                        FindDirectory(item, node);
                    }
                }
            }
            catch (Exception)
            {
                parentNode.Nodes.Add("禁止访问");
            }
        }
    }
}

6、运行程序,输入任意已存在的文件夹路径,点击确定:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud Gateway 服务网关的部署与使用详细介绍

为什么需要服务网关 传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多时,它需要…

【音视频第20天】wireshark+tcpdump

tcpdump抓 wireshark分析 目录 tcpdumpwireshark tcpdump tcpdump参数详解 网上一搜一大堆。最全的不是用tcpdump -h而是man tcpdump来查询手册。 tcpdump -i eth0 -p udp -xx -Xs 0 -w /root/test2.cap -i 针对eth0网卡的,ifconfig是查看有几个网卡 -i eth0 表示…

海睿思分享 | 终于有人把指标体系和标签体系说清楚了

当前,随着企业数字化转型如火如荼地开展,在企业经营管理数字化的数据建设过程中,经常会遇到指标和标签的使用场景。 指标体系到底是什么?标签体系又是什么?这些疑问导致在数据分析过程中效率低下、科学性不高&#xf…

回首来路多感概,最是奋斗动人心。

我们必需要在不同的时代有不同的领悟,才能充满生机地去迎接生命中每个新的开始。 文章目录 前言 初心 成长 收获 憧憬 出发 前言 今天是我成为csdn创作者一周年纪念日,我非常开心能够和大家分享我的写作之旅。在这一年里,我经历了许多挑…

ChatGPT实现数据集模拟生成,ChatGPT实现密码生成

数据集模拟生成 之前章节我们已经演示过ChatGPT 如何根据 prompt 编写文章或续写文章,文本生成的作用不仅仅在语文方面有用,本节我们演示另一种场景,利用 ChatGPT 来生成数据。看似作用差不多,其实这是目前开源社区非常常用的大语…

低代码和零代码二子争夺,你扶谁上位?

传统的软件研发方式目前并不能很好地满足企业的需求:人员成本高、研发时间长、运维复杂。这时低代码或零代码工具的出现为快速开发软件提供了更好的思路。对于不太了解两者的人来说,零代码和低代码是什么?又有什么联系与区别? 什么…

手把手教你安装telnet(离线方式+在线方式)

系列文章目录 文章目录 系列文章目录前言一、telnet是什么?二、安装步骤总结 前言 一、telnet是什么? Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力…

[openwrt] valgrind定位内存泄漏

目录 要求 valgrind 简介 工具介绍 linux程序的内存布局 内存检查的原理 valgrind的使用 使用举例 内存泄漏 内存越界 内存覆盖 Linux分配虚拟内存(申请内存)的两种方式 brk和mmap 要求 被调试程序带有-g参数编译,携带debug参数…

二维码在数字化班组管理中的应用

为了更好地贯彻落实集团公司对班组安全建设的要求,可以运用“加法思维”,勇于直面当前安全班组建设中的突出问题,敢于创新和突破,自主搭建数字化班组管理平台,以进一步提升班组安全建设水平。 本文将详细介绍搭建设备…

腾讯云CDN的HTTPS服务是收费的?

腾讯云内容分发网络CDN的HTTPS请求数收费了,之前阿里云CDN是收费的,现在腾讯云HTTPS请求数也开始收费的,但是腾讯云还是很良心的每月300万次以内是不计费的,只有超出free额度的部分才另外收费,HTTPS请求数价格为0.05元…

Windows10资源管理器使用

文章目录 前言二、关联菜单操作1.分组展示2.添加选择复选框3.使用窗格模式4.功能区折叠二、“文件夹选项”对话框操作1.访问模式调整2.状态栏控制总结前言 目前Windows系统中的使用较多当属Windows10,资源管理器属于Windows系统中一个常用工具。本文总结了Windows 10 专业版下…

类的默认成员函数

为什么会有构造函数和析构函数呢? 1、初始化和销毁经常忘记 2、有些地方写起来很繁琐. Stack有了构造和析构,就不怕忘记写初始化和清理函数了,也简化了 例如在队列oj时,忘记释放,造成内存泄漏 构造函数 主要任务&am…

spark on k8s 部署的一点理解

Running Spark on Kubernetes - Spark 3.4.0 Documentation (apache.org) 前提条件 1. 本地有spark安装包,以便于执行 spark submit 命令 2. k8s 集群,以及本地的有 kubectl 并且配置的用户包含相关权限,具体可以参考官网 一些观念的转变 …

二百左右的蓝牙耳机哪款好?200左右音质最好的蓝牙耳机

在日常生活中离不开智能手机,特别是对无线蓝牙耳机的需求程度也越来越高,但是市面上有很多的蓝牙耳机戴久了耳朵会出现不舒服,为了获得更好的使用体验,我整理了市面上200左右价位佩戴和音质都表现不错的蓝牙耳机。 一、南卡小音舱…

Leetcode 并查集详解

在一些应用的问题中,需将n个不同的元素划分成一组不相交的集合。开始时,每个元素自成一格单元素集合,然后按一定顺序将属于同一组的元素的集合合并。其间要反复用到查询某个元素属于哪个集合的运算。适合于描述这类问题的抽象数据类型称为并查…

【22】linux进阶——文本处理工具:cut、awk、sed

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家 另外其它专栏请关注: 锐捷数通实验&…

一段凄惨Android 面试经历分享,败在了项目架构原理上……

大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助。 这是一位网友分享的面试经历,他准备了3个月,刚刚参加完字节跳动的第三面,视频面&#xff…

数说故事联合中山大学国际关系学院共建「国关数据实验室」,深化数据科学与国际关系融合创新

4月9日,数说故事联合中山大学国际关系学院共建的「国关数据实验室」正式启动,此次强强联合是双方在国际关系领域的一项创新尝试,该实验室旨在整合数说故事和国际关系学院师生的资源优势,将数据科学与国际关系研究相结合&#xff0…

真实还原美团4面经历,低学历成功拿到20K Offer...

个人背景 如标题所示,我的个人背景非常简单,软件测试经验 1 年半,学历普通,2 本毕业后出来就一直在做功能测试,在公司每天重复的工作对我的技术提升并没有什么帮助,但小镇出来的我也深知自我努力的重要性&…

Binder 与 四大组件工作原理 其一

Binder Binder的组成结构 Binder的架构如图所示 ServiceManager负责把Binder Server注册到一个容器中。 我们可以这样理解Client、Server 、ServiceManager、Binder Driver之间的关系: 把ServiceManager比喻成电话局,存储着每个住宅的座机电话。张三给…