treelistview入门使用

1 篇文章 0 订阅

treelistview入门使用

1、创建窗口程序

2、引入库System.Runtime.InteropServices.APIs.dll和System.Runtime.InteropServices.APIs.dll

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bdc7wuNM-1672901166444)(./png/image-20230105131125478.png)]

3、工具箱添加控件

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFkWpPyr-1672901166445)(./png/image-20230105132123036.png)]

了解功能和属性

4、添加图标

是否显示节点前加号或者减号:
在这里插入图片描述

是否添加网格线:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lGgo8idp-1672901166446)(./png/image-20230105133517004.png)]

添加图标文件:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQ3PtDAX-1672901166446)(./png/image-20230105133534360.png)]

5、添加imagelist并绑定

在这里插入图片描述

6、初始化数据

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();
            this.Load += OnLoadHandler1;
        }
        private void OnLoadHandler1(object sender, EventArgs e)
        {
            addColumn();
            initInfo();
        }
        private void addColumn()
        {
            this.treeListView1.Items.Sortable = false;//禁止排序
            treeListView1.Columns.Add("aaa", 250);//直接指定宽度
            treeListView1.Columns.Add("bbb", 50);
            treeListView1.Columns.Add("cccc", 80);

        }
        
        private void initInfo()
        {
            treeListView1.Items.Clear();
            DataTable groupResult = createTestData();
            if (groupResult != null)
            {
                DataRow[] rows = groupResult.Select("pid = '0'");
                foreach (DataRow row in rows)
                {
                    TreeListViewItem firstNode = new TreeListViewItem(row["name"].ToString(), 0);//一级节点
                    firstNode.SubItems.Add(row["V1"].ToString());
                    firstNode.SubItems.Add(row["V2"].ToString());

                    initChile(firstNode, row["id"].ToString(), groupResult);
                    treeListView1.Items.Sortable = false;
                    treeListView1.Items.Add(firstNode);
                }
            }
        }

        private void initChile(TreeListViewItem fatherNode, string id, DataTable groupResult)
        {
            DataRow[] rows = groupResult.Select("pid='" + id + "'");
            if (rows.Length == 0)
            {
                return;
            }
            foreach (DataRow row in rows)
            {
                TreeListViewItem node= new TreeListViewItem(row["name"].ToString(), 0);

                node.SubItems.Add(row["V1"].ToString());
                node.SubItems.Add(row["V2"].ToString());

                initChile(node, row["id"].ToString(), groupResult);
                fatherNode.Items.Sortable = false;
                fatherNode.Items.Add(node);
            }
        }
        
        private DataTable createTestData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("A"); dt.Columns.Add("id"); dt.Columns.Add("pid"); dt.Columns.Add("name");
            dt.Columns.Add("V1"); dt.Columns.Add("V2");

            var myRow = dt.NewRow();
            myRow["A"] = "0"; myRow["id"] = "01"; myRow["pid"] = "0"; myRow["name"] = "一级"; myRow["V1"] = "";
            myRow["V2"] = ""; 

            var myRow1 = dt.NewRow();
            myRow1["A"] = "0"; myRow1["id"] = "001"; myRow1["pid"] = "01"; myRow1["name"] = "二级"; myRow1["V1"] = "";
            myRow1["V2"] = "";

            var myRow2 = dt.NewRow();
            myRow2["A"] = "0"; myRow2["id"] = "0001"; myRow2["pid"] = "001"; myRow2["name"] = "三级"; myRow2["V1"] = "";
            myRow2["V2"] = ""; 

            var myRow3 = dt.NewRow();
            myRow3["A"] = "0"; myRow3["id"] = "00001"; myRow3["pid"] = "0001"; myRow3["name"] = "四级"; myRow3["V1"] = "八路我";
            myRow3["V2"] = "日本省";

            var myRow4 = dt.NewRow();
            myRow4["A"] = "0"; myRow4["id"] = "00002"; myRow4["pid"] = "0001"; myRow4["name"] = "五级"; myRow4["V1"] = "你奶奶";
            myRow4["V2"] = "小趴菜";
           


            dt.Rows.Add(myRow);
            dt.Rows.Add(myRow1);
            dt.Rows.Add(myRow2);
            dt.Rows.Add(myRow3);
            dt.Rows.Add(myRow4);
            return dt;
        }
    }
}

效果:

dt.Rows.Add(myRow2);
dt.Rows.Add(myRow3);
dt.Rows.Add(myRow4);
return dt;
}
}
}


效果:

![在这里插入图片描述](https://img-blog.csdnimg.cn/9e1a82ba11b641a096c262055f253af1.png)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值