场景

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

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

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

注:

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

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

实现

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

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

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

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

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

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

  1. System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList();
  2. imgList.Images.AddRange(imgs);
  3. treeList1.SelectImageList = imgList;
  4. treeList1.Nodes.FirstOrDefault().ImageIndex = ;
  5. treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = ;
  6. treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = ;

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

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

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

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

完整示例代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace TreeListTest
  12. {
  13. public partial class Form1 : Form
  14. {
  15.  
  16. public static System.Drawing.Image[] imgs = new System.Drawing.Image[] {
  17. System.Drawing.Image.FromFile(@"../../Resources/a.png"),
  18. System.Drawing.Image.FromFile(@"../../Resources/b.png"),
  19. System.Drawing.Image.FromFile(@"../../Resources/c.png")
  20. };
  21.  
  22. public Form1()
  23. {
  24. InitializeComponent();
  25. }
  26.  
  27. private void Form1_Load(object sender, EventArgs e)
  28. {
  29.  
  30. #region 设置列头、节点指示器面板、表格线样式
  31.  
  32. treeList1.OptionsView.ShowColumns = false; //隐藏列标头
  33. treeList1.OptionsView.ShowIndicator = false; //隐藏节点指示器面板
  34. treeList1.OptionsView.ShowHorzLines = false; //隐藏水平表格线
  35. treeList1.OptionsView.ShowVertLines = false; //隐藏垂直表格线
  36. treeList1.OptionsView.ShowIndentAsRowStyle = false;
  37.  
  38. #endregion
  39.  
  40. #region 初始禁用单元格选中,禁用整行选中
  41.  
  42. treeList1.OptionsView.ShowFocusedFrame = true; //设置显示焦点框
  43. treeList1.OptionsSelection.EnableAppearanceFocusedCell = false; //禁用单元格选中
  44. treeList1.OptionsSelection.EnableAppearanceFocusedRow = false; //禁用正行选中
  45.  
  46. #endregion
  47.  
  48. #region 设置TreeList的展开折叠按钮样式和树线样式
  49.  
  50. treeList1.OptionsView.ShowButtons = true; //显示展开折叠按钮
  51. treeList1.LookAndFeel.UseDefaultLookAndFeel = false; //禁用默认外观与感觉
  52. treeList1.LookAndFeel.UseWindowsXPTheme = true; //使用WindowsXP主题
  53. treeList1.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Percent50; //设置树线的样式
  54.  
  55. #endregion
  56.  
  57. #region 添加单列
  58.  
  59. DevExpress.XtraTreeList.Columns.TreeListColumn colNode = new DevExpress.XtraTreeList.Columns.TreeListColumn();
  60. colNode.Name = String.Format("col{0}", "NodeText");
  61. colNode.Caption = "NodeText";
  62. colNode.FieldName = "NodeText";
  63. colNode.VisibleIndex = ;
  64. colNode.Visible = true;
  65.  
  66. colNode.OptionsColumn.AllowEdit = false; //是否允许编辑
  67. colNode.OptionsColumn.AllowMove = false; //是否允许移动
  68. colNode.OptionsColumn.AllowMoveToCustomizationForm = false; //是否允许移动至自定义窗体
  69. colNode.OptionsColumn.AllowSort = false; //是否允许排序
  70. colNode.OptionsColumn.FixedWidth = false; //是否固定列宽
  71. colNode.OptionsColumn.ReadOnly = true; //是否只读
  72. colNode.OptionsColumn.ShowInCustomizationForm = true; //移除列后是否允许在自定义窗体中显示
  73.  
  74. treeList1.Columns.Clear();
  75. treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNode });
  76.  
  77. #endregion
  78.  
  79. treeList1.KeyFieldName = "Id";
  80. treeList1.ParentFieldName = "ParentId";
  81.  
  82. DataTreeNode node1 = new DataTreeNode();
  83. node1.Id = "";
  84. node1.ParentId = null;
  85. node1.NodeText = "1公众号";
  86.  
  87. DataTreeNode node11 = new DataTreeNode();
  88. node11.Id = "";
  89. node11.ParentId = "";
  90. node11.NodeText = "1-1霸道的程序猿";
  91.  
  92. DataTreeNode node111 = new DataTreeNode();
  93. node111.Id = "";
  94. node111.ParentId = "";
  95. node111.NodeText = "1-1-1大量编程资源";
  96.  
  97. List<DataTreeNode> data = new List<DataTreeNode>();
  98.  
  99. data.Add(node1);
  100. data.Add(node11);
  101. data.Add(node111);
  102.  
  103. treeList1.DataSource = data;
  104. treeList1.RefreshDataSource();
  105.  
  106. System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList();
  107. imgList.Images.AddRange(imgs);
  108.  
  109. treeList1.SelectImageList = imgList;
  110.  
  111. treeList1.Nodes.FirstOrDefault().ImageIndex = ;
  112. treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = ;
  113. treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = ;
  114. }
  115. }
  116. }

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. 执行插件的替代方式:用JS调用操作

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复229或者20161028可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  2. Ubuntu个人使用笔记整理

    Ubuntu笔记 Ubuntu使用过程中整理的一些常用或关键操作整理,以备不时之需, 另外自己可以对界面做一些美化,这部分自行百度去配置,我的界面如图 ##################Ubuntu ...

  3. AtCoder - 2037 (dp)

    题意 https://vjudge.net/problem/AtCoder-2037 选一些数使得和的平均值等于a,问方案数. 思路 设dp[i][j]为选i个数和为j的方案数,如果当前选了x,那么d ...

  4. 关于 from scipy.misc import imread, imresize, imsave 报错的问题

    使用 from scipy.misc import imread, imresize, imsave 时出现报错,查找后发现新版本的Scipy不再包含imread,imresize,imsave,需要 ...

  5. Python入门基础学习(函数)

    Python基础学习笔记(三) 函数的概念: 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用 函数的使用包含两个步骤: 1.定义函数 --封装独立的功能 2.调用函数 --享受 ...

  6. python 实现 AES CBC模式加解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AE ...

  7. Windows10下Git环境变量配置

    一.确定Git正确安装并能使用 右键项目目录,检查Git版本: 输入:  git --version 二. 配置环境变量 右键我的电脑 --> 属性 点击高级系统设置 --> 环境变量 - ...

  8. 消息中间件(二)MQ使用场景

    一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构.目前使用较多的消息队列有ActiveMQ,Rabbit ...

  9. 设计模式-单例模式(Singleton) (创建型模式)

    //以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Singleton.h #pragma once #include<iostream> class Sin ...

  10. Fontconfig error: Cannot load config file "infinality/conf.d"

    reference: https://forums.gentoo.org/viewtopic-t-1079210-start-0.html resolved with following method ...