.net自带的树控件TreeView用法

发布时间 2023-12-26 11:57:02作者: yinghualeihenmei

原文链接:https://blog.csdn.net/wenchm/article/details/133276828

https://blog.csdn.net/xiaogongzhu001/article/details/131100371

        TreeView控件(树控件)可以为用户显示节点层次结构,每个节点又可以包含子节点,包含子节点的节点叫父节点。就像在Windows操作系统的Windows资源管理器功能的左窗口中显示文件和文件夹一样。

1、在窗体上放置 TreeView 控件:
在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一个 TreeView 控件到你的窗体上。

2、添加树节点:

使用 TreeView 控件的 Nodes 属性来添加和管理树节点。
使用 TreeView.Nodes.Add 方法添加根节点。
使用 TreeNode.Nodes.Add 方法添加子节点。
使用 TreeNode.Text 属性设置节点显示的文本。
3、处理 TreeView 的事件:

AfterSelect:当选择了一个节点后触发的事件。你可以通过订阅该事件,在节点选择变化时执行特定的操作。
4、修改节点样式:

使用 TreeNode.ForeColor 属性设置节点文本的前景色。
使用 TreeNode.BackColor 属性设置节点背景色。
使用 TreeNode.NodeFont 属性设置节点文本的字体样式。

一、添加和删除树节点 
1.添加节点
        使用TreeView控件Nodes属性的Add()方法,可以向控件中添加节点。

public virtual int Add(TreeNode node)
☑ node:要添加到集合中的TreeNode。
☑ 返回值:添加到树节点集合中的TreeNode的从零开始的索引值。
2.移除节点
        使用TreeView控件Nodes属性的Remove()方法可以从树节点集合中移除指定的树节点。

public void Remove (TreeNode node)
node:要移除的TreeNode。
二、获取树控件中选中的节点
        可以在控件的AfterSelect事件中,使用EventArgs对象返回对已单击节点对象的引用。通过检查TreeViewEventArgs类(它包含与事件有关的数据),确定单击了哪个节点。

        在BeforeCheck(在选中树节点复选框前发生)或AfterCheck(在选中树节点复选框后发生)事件中尽可能不要使用TreeNode.Checked属性。

1.源码

//Form1.cs
//AfterSelect事件使用EventArgs对象返回对已单击节点对象的引用
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 _11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//初始化Form1
label1.Visible = false;

//创建父节点
TreeNode treeNode = treeView1.Nodes.Add("银行");

//创建子节点
TreeNode treeNode_1 = new TreeNode("徽商银行");
TreeNode treeNode_2 = new TreeNode("华夏银行");
TreeNode treeNode_3 = new TreeNode("浙商银行");

//给父节点添加子节点
treeNode.Nodes.Add(treeNode_1);
treeNode.Nodes.Add(treeNode_2);
treeNode.Nodes.Add(treeNode_3);
}

//AfterSelect事件使用EventArgs对象返回对已单击节点对象的引用
private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
label1.Visible = true;
label1.Text = "选中的节点是:" + e.Node.Text;
}
}
}

2.生成效果
 

 

 

三、为树控件中的节点设置图标
        TreeView控件可在每个节点旁显示图标。图标紧挨着节点文本的左侧。若要显示这些图标,必须使树视图与ImageList控件相关联。

        设置TreeView控件的ImageList属性为想要使用的现有ImageList控件。这些属性可在设计器中使用“属性”窗口进行手动设置,也可在代码中编程设置。

treeView1.ImageList = imageList1;
        设置节点的ImageIndex和SelectedImageIndex属性,ImageIndex属性确定正常和展开状态下的节点显示的图像,SelectedImageIndex属性确定选定状态下的节点显示的图像。

1.源码
//Form1.cs
//为树控件中的节点设置图标
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 _12
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
treeView1.Dock = DockStyle.Fill;

//创建父节点
TreeNode treeNode = treeView1.Nodes.Add("组织结构");

//创建子节点
TreeNode treeNode_1 = new TreeNode("C#部门");
TreeNode treeNode_2 = new TreeNode("C++部门");
TreeNode treeNode_3 = new TreeNode("VB部门");

//给父节点添加子节点
treeNode.Nodes.Add(treeNode_1);
treeNode.Nodes.Add(treeNode_2);
treeNode.Nodes.Add(treeNode_3);

//给imagelist1添加图片
imageList1.Images.Add(Image.FromFile("1.png"));
imageList1.Images.Add(Image.FromFile("2.png"));

//treeView1和imageList1建立关联
treeView1.ImageList = imageList1;
imageList1.ImageSize = new Size(16, 16);

//默认显示图标ID=0,鼠标选中时显示图标ID=1
treeView1.ImageIndex = 0;
treeView1.SelectedImageIndex = 1;
}
}
}

2.生成效果