树视图(TreeView)控件可以为用户显示节点层次结构,就像在Windows资源管理器功能在左窗格中显示文件和文件夹一样。树视图中的各个节点可能包含其它节点,称为“子节点”。用户可以按展开或折叠的方式显示父节点或包含子节点的节点。
添加和删除树节点
TreeView控件以层次结构的方式显示节点,Nodes属性包含树视图中的顶级节点列表,它是TreeNode对象集合。
1、添加节点
添加节点时,首先需要创建TreeNode类的对象,然后通过Nodes的Add方法将创建的TreeNode对象添加为TreeView节点。
Add方法的语法格式如下:
public virtual int Add(TreeNode node)
参数node表示要添加到集合中的TreeNode。
编写程序,为TreeView控件添加两个父节点,分别用于表示初中和高中。然后再添加三个子节点,用于表示年级。
在Form1窗体中,添加TreeView控件;
在Form1_Load事件中使用Add方法,为控件建立两个父节点,tn1表示初中,tn2表示 高中;然后再分别创建三个子节点,用于表示年级。
完整代码:
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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//为控件建立两个父节点,tn1表示初中,tn2表示高中
TreeNode tn1 = treeView1.Nodes.Add("初中");
TreeNode tn2 = treeView1.Nodes.Add("高中");
//为控件建立三个子节点
TreeNode CZ1 = new TreeNode("初一");
TreeNode CZ2 = new TreeNode("初二");
TreeNode CZ3 = new TreeNode("初三");
//将以上的三个节点添加到第一个父节点中
tn1.Nodes.Add(CZ1);
tn1.Nodes.Add(CZ2);
tn1.Nodes.Add(CZ3);
//再为控件建立三个子节点
TreeNode GZ1 = new TreeNode("高一");
TreeNode GZ2 = new TreeNode("高二");
TreeNode GZ3 = new TreeNode("高三");
//将以上的三个节点添加到第二个父节点中
tn2.Nodes.Add(GZ1);
tn2.Nodes.Add(GZ2);
tn2.Nodes.Add(GZ3);
}
}
}
运行结果:
2、删除节点
删除节点时,可用Nodes属性的Remove方法,语法格式如下:
public void Remove(TreeNode node)
参数node表示要移除的TreeNode。
编写程序,将“高中”节点删除。
在上面的程序不变情况下,添加Button控件
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;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//为控件建立两个父节点,tn1表示初中,tn2表示高中
TreeNode tn1 = treeView1.Nodes.Add("初中");
TreeNode tn2 = treeView1.Nodes.Add("高中");
//为控件建立三个子节点
TreeNode CZ1 = new TreeNode("初一");
TreeNode CZ2 = new TreeNode("初二");
TreeNode CZ3 = new TreeNode("初三");
//将以上的三个节点添加到第一个父节点中
tn1.Nodes.Add(CZ1);
tn1.Nodes.Add(CZ2);
tn1.Nodes.Add(CZ3);
//再为控件建立三个子节点
TreeNode GZ1 = new TreeNode("高一");
TreeNode GZ2 = new TreeNode("高二");
TreeNode GZ3 = new TreeNode("高三");
//将以上的三个节点添加到第二个父节点中
tn2.Nodes.Add(GZ1);
tn2.Nodes.Add(GZ2);
tn2.Nodes.Add(GZ3);
}
private void button1_Click(object sender, EventArgs e)
{
TreeNode tn = treeView1.SelectedNode;
if(tn.Text=="高中")
{
DialogResult mydr = MessageBox.Show("该节点包含子节点,确定删除吗?\n确定请按是,取消请按否", "删除提示", MessageBoxButtons.YesNo);
if(mydr==DialogResult.Yes)
{
tn.Remove();
}
}
else
{
treeView1.Nodes.Remove(treeView1.SelectedNode);
}
}
}
}
运行结果如下:
为树控件中的节点设置图标
TreeView控件与ImageList控件结合使用,可在每个节点旁边显示图标。
具体步骤如下:
1、直接单击控件上方的小箭头,然后再单击“编辑节点”,就会弹出“TreeNode编辑器”对话框。
2、选中ImageList控件的Images属性,并单击...按钮,就会弹出一个“图像集合编辑器”对话框,最后通过该对话框为节点设置图标。最后需要将TreeView控件的ImageList属性设置为imageList1,图标才会在节点中显示出来。
搞不清楚。