码迷,mamicode.com
首页 > 其他好文 > 详细

DevExpress的TreeList实现自定义节点NodeCell的背景颜色和前景色

时间:2020-06-10 13:18:42      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:try   map   src   实现   expr   mic   raw   glob   div   

场景

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

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

在上面设置TreeList的数据源并设置其为树形结构后,如果想要自定义NodeCell的背景色和前景色。

效果如下

技术图片

 

 

技术图片

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

通过重写treelist的CustomDrawNodeCell事件来实现

treeList.CustomDrawNodeCell -= treeList_CustomDrawNodeCell;
treeList.CustomDrawNodeCell += treeList_CustomDrawNodeCell;

然后在重写的事件中

        private static void treeList_CustomDrawNodeCell(object sender, DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e)
        {
            //确定列的名字不为空
            if (e.Column.Name.ToString() != null)
            {

                    Color color = new Color();
             //获取要设置的颜色--通过e.CellValue获取当前node节点的值,然后在字典映射中获取要设置的color对象
                    Global.Instance.CurveComColorMapping.TryGetValue(e.CellValue.ToString(), out color);
                    //设置背景色
                    e.Appearance.BackColor = color;
                    //设置开启背景色
                    e.Appearance.Options.UseBackColor = true;
                    //设置前景色
                    e.Appearance.ForeColor = Color.White;
                    //设置开启前景色
                    e.Appearance.Options.UseForeColor = true;
                
            }
        }

注:

上面的是通过e.CellValue来获取节点的值,然后通过提前设置好的节点与颜色的映射来获取要设置的颜色。

键值对的映射定义如下

private Dictionary<string, System.Drawing.Color> _curveComColorMapping = new Dictionary<string,System.Drawing.Color>();

这样就能实现根据配置好的节点与颜色的对应关系将节点设置为不同的颜色。

DevExpress的TreeList实现自定义节点NodeCell的背景颜色和前景色

标签:try   map   src   实现   expr   mic   raw   glob   div   

原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/13084321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!