C#应用程序界面开发进阶——高级窗体控件(3)——树视图控件(为树控件中的节点设置图标,没看懂)

树视图(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,图标才会在节点中显示出来。

搞不清楚。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值