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 ...
随机推荐
- HTTP中的2XX状态码
HTTP状态码分类 1XX --信息,服务器收到请求,需要请求者继续执行操作 2XX--成功,操作被成功接收并处理 3XX--重定向,需要进一步的操作以完成请求 4XX--客户端错误,请求包含语法错误 ...
- 1041. Robot Bounded In Circle
本题题意: 一开始一个机器人站在了(0,0)上,面朝的方向是北,收到三个序列G,L,R. G:直走 L:向左转 R:向右转 按序执行,永远重复. 返回TRUE,如果处在一个圈. 第一个卡住的点: 1. ...
- 使用android日志工具
Log的级别? 日志级别按照高低排序为:ERROR,WARN,INFO,DEBUG,VERBOSE, 日志输出: Log.e()输出ERROR级别的日志信息 Log.w()输出WARN,ERROR级别 ...
- 工具类Base64Util
在和服务器交互的过程中,有时候我们需要把图片编码成base64字符串传输,记录一下工具类 import android.graphics.Bitmap; import android.graphics ...
- [20190524]使用use_concat or_expand提示优化.txt
[20190524]使用use_concat or_expand提示优化.txt --//上午看了链接https://connor-mcdonald.com/2019/05/22/being-gene ...
- ssh-agent,ssh-add 命令
centos 6.9 下测试: ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管. eval `ssh-agent -s` ssh-a ...
- 使用Azure进行自动化机器学习
什么是自动化机器学习? 自动化的机器学习,也称为 AutoML,让数据科研人员. 分析人员和开发人员,同时维护模型质量构建具有高缩放性. 效率和工作效率的机器学习模型. 自动化机器学习生成的机器学习模 ...
- 2015年蓝桥杯B组C/C++决赛题解
2015年第六届蓝桥杯B组C/C++决赛题解 点击查看2015年第六届蓝桥杯B组C/C++国赛题目(不含答案) 1.积分之迷 三重循环 枚举A,B,C的值,如果满足两个条件:3个A + 7个B ...
- django获取某一个字段的列表 values values_list flat=true
1.values() print(Question.objects.values('title')) #得到的是一个字典 <QuestionQuerySet [{'title': '查询优化之s ...
- 二分法查找(C语言)
二分法是一种高效的查找方法,其适用于已经排好序的数组 基本思路 从数组最中间的数开始查找判断,若不是需要查找的数字,则比较大小,之后则在从中间分开的两边中的一边从最中间开始查找判断,以此类推 算法描述 ...