DevExpress的TreeList怎样给树节点设置图标
场景
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怎样给树节点设置图标的更多相关文章
- 如何自定义修改ztree树节点的图标
1.此种情况是针对后对数据没有不好判断谁是父节点和子节点的问题 ztree默认的树节点,父子节点的图标不大好看,修改图片只需要在数据的地方添加icon的键,值就是图片的相对位置,但是问题就是需要区分是 ...
- Winform TreeList递归绑定树节点
/// <summary> /// 绑定树目录 /// </summary> /// <param name="parentId">父ID< ...
- 【zTree】zTree展开树节点
今天在做zTree树的时候想着将第一级tree展开,于是利用下面方法: /** * 展开树节点的第一层 */ function openFirstTreenode(){ // 获取树对象 var tr ...
- DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- DevExpress的TreeList怎样设置数据源使其显示成单列树形结构
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- DevExpress的TreeList的常用属性设置以及常用事件
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式
在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...
- DevExpress中TreeList树样式调整
DevExpress的TreeList默认是没有树状线的,修改TreeLineStyle属性无效,这对于Tree并不好看. 解决方案一 官方解释说对于DevExpress的标准主题是不支持TreeLi ...
- Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点
场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...
随机推荐
- 车联网APP,安全设施薄弱的山寨品
- HDIT 来到该公司官网,打开任意一个云平台的链接,很显眼地能看见APP的下载按钮,下载,安装,抓包,使用,完全的套路,熟门熟路是不是. 再看抓取的报文,满目的HTTP协议数据: 完全没有对APP ...
- 免sdk实现微信/支付宝转账打赏功能
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/162 近期发现了一个很好的开源项目,可以给自己的app添加 ...
- 【团队项目3】需求改进&系统设计
一.需求 & 原型改进 1.针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改 根据用户反馈,我们针对如下问题做了修改: 问题1:如何保证机构是否是官方的?平台是否有监管? 修 ...
- weblogic新增域并进行Jconsole监听
一.创建域: 第一步,打开域配置界面: [bofm@UAT02-BIZ-ZJCG-AP-002 bin]$ cd /home/software/weblogic/Oracle/Middleware/w ...
- https://jwt.io/一个可以解析token的神奇网站
网址:https://jwt.io/ 效果:
- gn-build
I'm not completely sure from the error you describe but it sounds like you don't have a .gn file in ...
- 解决Django-Error: That port is already in use
Error: That port is already in use. 1.使用python manage.py runserver 8001 开一个新的端口. 2.kill掉原来的端口(在root条 ...
- adb的端口号5037被占用的解决方法
1.在cmd中执行adb nodaemon server,查看adb的端口号是多少,一般情况下是5037(why?应该软件使用的端口号是固定的) 2.再执行netstat -ano | findstr ...
- Koa 中间件的执行顺序
中间件工作原理 初始化koa实例后,我们会用use方法来加载中间件(middleware),会有一个数组来存储中间件,use调用顺序会决定中间件的执行顺序. 每个中间件都是一个函数(不是函数将报错), ...
- NOIP模拟赛 迷路
题目描述 Description \(FYH\) 在 \(ns\) 星系迷路了,情急之下,他找到了你.现在,解救 \(FYH\) 的重任就落在了你的肩上了. \(ns\) 星系有 \(n\) 颗星球, ...