场景

DevExpress的TreeList怎样设置数据源使其显示成单列树形结构:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102742426

在上面设置TreeList的数据源并设置其为树形结构后,如何给树形结构设置图标

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先按照上面搭建好树形结构和设置数据源之后效果如下

然后在项目下新建Resources目录,将图标文件复制进去

然后在窗体类中获取图标数组

 public static System.Drawing.Image[] imgs = new System.Drawing.Image[] {
System.Drawing.Image.FromFile(@"../../Resources/a.png"),
System.Drawing.Image.FromFile(@"../../Resources/b.png"),
System.Drawing.Image.FromFile(@"../../Resources/c.png")
};

这里路径为什么是两层上级目录,因为Resources目录相对应bin/debug的目录如此

然后在窗体加载完的事件中对TreeList设置完数据源之后,设置每个节点的图标。

System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList();
imgList.Images.AddRange(imgs);
treeList1.SelectImageList = imgList;
treeList1.Nodes.FirstOrDefault().ImageIndex = ;
treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = ;
treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = ;

这里是通过treeList1.Nodes.FirstOrDefault()找到第一个节点或者默认节点,即根节点。

然后通过FirstNode找到第一个子节点。

然后treeList1.SelectImageList = imgList设置其图标源是一个图标数组。

然后指定每个节点的ImageIndex 就是在图标数组中的索引。

完整示例代码:

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 TreeListTest
{
public partial class Form1 : Form
{ public static System.Drawing.Image[] imgs = new System.Drawing.Image[] {
System.Drawing.Image.FromFile(@"../../Resources/a.png"),
System.Drawing.Image.FromFile(@"../../Resources/b.png"),
System.Drawing.Image.FromFile(@"../../Resources/c.png")
}; public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{ #region 设置列头、节点指示器面板、表格线样式 treeList1.OptionsView.ShowColumns = false; //隐藏列标头
treeList1.OptionsView.ShowIndicator = false; //隐藏节点指示器面板
treeList1.OptionsView.ShowHorzLines = false; //隐藏水平表格线
treeList1.OptionsView.ShowVertLines = false; //隐藏垂直表格线
treeList1.OptionsView.ShowIndentAsRowStyle = false; #endregion #region 初始禁用单元格选中,禁用整行选中 treeList1.OptionsView.ShowFocusedFrame = true; //设置显示焦点框
treeList1.OptionsSelection.EnableAppearanceFocusedCell = false; //禁用单元格选中
treeList1.OptionsSelection.EnableAppearanceFocusedRow = false; //禁用正行选中 #endregion #region 设置TreeList的展开折叠按钮样式和树线样式 treeList1.OptionsView.ShowButtons = true; //显示展开折叠按钮
treeList1.LookAndFeel.UseDefaultLookAndFeel = false; //禁用默认外观与感觉
treeList1.LookAndFeel.UseWindowsXPTheme = true; //使用WindowsXP主题
treeList1.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Percent50; //设置树线的样式 #endregion #region 添加单列 DevExpress.XtraTreeList.Columns.TreeListColumn colNode = new DevExpress.XtraTreeList.Columns.TreeListColumn();
colNode.Name = String.Format("col{0}", "NodeText");
colNode.Caption = "NodeText";
colNode.FieldName = "NodeText";
colNode.VisibleIndex = ;
colNode.Visible = true; colNode.OptionsColumn.AllowEdit = false; //是否允许编辑
colNode.OptionsColumn.AllowMove = false; //是否允许移动
colNode.OptionsColumn.AllowMoveToCustomizationForm = false; //是否允许移动至自定义窗体
colNode.OptionsColumn.AllowSort = false; //是否允许排序
colNode.OptionsColumn.FixedWidth = false; //是否固定列宽
colNode.OptionsColumn.ReadOnly = true; //是否只读
colNode.OptionsColumn.ShowInCustomizationForm = true; //移除列后是否允许在自定义窗体中显示 treeList1.Columns.Clear();
treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNode }); #endregion treeList1.KeyFieldName = "Id";
treeList1.ParentFieldName = "ParentId"; DataTreeNode node1 = new DataTreeNode();
node1.Id = "";
node1.ParentId = null;
node1.NodeText = "1公众号"; DataTreeNode node11 = new DataTreeNode();
node11.Id = "";
node11.ParentId = "";
node11.NodeText = "1-1霸道的程序猿"; DataTreeNode node111 = new DataTreeNode();
node111.Id = "";
node111.ParentId = "";
node111.NodeText = "1-1-1大量编程资源"; List<DataTreeNode> data = new List<DataTreeNode>(); data.Add(node1);
data.Add(node11);
data.Add(node111); treeList1.DataSource = data;
treeList1.RefreshDataSource(); System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList();
imgList.Images.AddRange(imgs); treeList1.SelectImageList = imgList; treeList1.Nodes.FirstOrDefault().ImageIndex = ;
treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = ;
treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = ;
}
}
}

DevExpress的TreeList怎样给树节点设置图标的更多相关文章

  1. 如何自定义修改ztree树节点的图标

    1.此种情况是针对后对数据没有不好判断谁是父节点和子节点的问题 ztree默认的树节点,父子节点的图标不大好看,修改图片只需要在数据的地方添加icon的键,值就是图片的相对位置,但是问题就是需要区分是 ...

  2. Winform TreeList递归绑定树节点

    /// <summary> /// 绑定树目录 /// </summary> /// <param name="parentId">父ID< ...

  3. 【zTree】zTree展开树节点

    今天在做zTree树的时候想着将第一级tree展开,于是利用下面方法: /** * 展开树节点的第一层 */ function openFirstTreenode(){ // 获取树对象 var tr ...

  4. DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  5. DevExpress的TreeList怎样设置数据源使其显示成单列树形结构

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  6. DevExpress的TreeList的常用属性设置以及常用事件

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  7. 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式

    在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...

  8. DevExpress中TreeList树样式调整

    DevExpress的TreeList默认是没有树状线的,修改TreeLineStyle属性无效,这对于Tree并不好看. 解决方案一 官方解释说对于DevExpress的标准主题是不支持TreeLi ...

  9. Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点

    场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...

随机推荐

  1. 一文解读5G (转)

    今天要研究的对象,是5G接入网. 什么是接入网?相信不少同学,对这个概念一定不会陌生. 搬出这张移动通信架构图: 接入网,在我们无线通信里,一般指无线接入网,也就是通常所说的RAN(Radio Acc ...

  2. netcore中使用grpc

    简介 grpc是由google公司开发的一个高性能.开源和通用的RPC框架,采用HTTP/2通信. 1.gRPC的传输使用http/2支持双向流. 2.支持多语言,例如java.go.php.net. ...

  3. SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1)

    SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1) Action Plan 1. Execute srdc_db_u ...

  4. CSS 轻松搞定标签(元素)居中问题

    在CSS里,标签位置居中一直是困扰Web前端的难题.在本文中,我对这类问题进行了探究和给出了几点建议,供读者参考. 1 行内标签 1.1 水平居中 在父级标签中使用 text-align: cente ...

  5. Linux:别名的设置

    作用 别名的作用是将较长的命令做简化 定义别名 alias [别名[=原命令]] 删除别名 unalias 查看系统可用别名 alias

  6. 『008』Zabbix

    『006』索引-Monitoring Zabbix [001]- 点我快速打开文章[001-Zabbix 服务安装] [002]- 点我快速打开文章[002-Zabbix 前端配置] 更新中

  7. 01 python的安装

    下载3.7.0版本 然后点击 close  关闭 1-==>搜索输入“cmd”输入 “python -V”并回车. 出现版本说明安装成功.2==>>>> 是提示符3=== ...

  8. 字典与json转化

    json.dumps(字典)  #转成json格式 json.loads(json格式) #转成字典格式

  9. luoguP3431 [POI2005]AUT-The Bus

    安利系列博文 https://www.cnblogs.com/tyner/p/11565348.html https://www.cnblogs.com/tyner/p/11605073.html 做 ...

  10. drf扩展知识点总结视图