浅谈DevExpress<五>:TreeList简单的美化——自定义单元格,加注释以及行序号

  今天就以昨天的列表为例,实现以下效果:预算大于110万的单元格突出显示,加上行序号以及注释,如下图:

  添加行序号要用到CustomDrawNodeIndicator方法,要注意的是,取得的节点索引是从0开始的,所以要+1以便第一行从一开始算起。


     private void treeList1_CustomDrawNodeIndicator(object sender, CustomDrawNodeIndicatorEventArgs e)
{
TreeList tree = sender as DevExpress.XtraTreeList.TreeList;
tree.IndicatorWidth = 30;
IndicatorObjectInfoArgs args = e.ObjectArgs as IndicatorObjectInfoArgs;
args.DisplayText = (tree.GetVisibleIndexByNode(e.Node) + 1).ToString();
}

  若要添加单元格注释,则要用到toolTipController控件:。将其拉入界面中,并将Treelist的tooltipcontroller属性设置为刚才的控件名称,然后定义控件的GetActiveObjectInfo事件,本例显示了单元格的内容、列和节点的索引:


        private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
{
if (e.SelectedControl is DevExpress.XtraTreeList.TreeList)
{
TreeList tree = (TreeList)e.SelectedControl;
TreeListHitInfo hit = tree.CalcHitInfo(e.ControlMousePosition);

if (hit.HitInfoType == HitInfoType.Cell)
{
object cellInfo = new TreeListCellToolTipInfo(hit.Node,hit.Column,null);
string toolTip = string.Format("{0} (Colomn: {1}, Node ID: {2})", hit.Node[hit.Column],
hit.Column.VisibleIndex, hit.Node.Id);
e.Info = new DevExpress.Utils.ToolTipControlInfo(cellInfo,toolTip);
}
}
}

  最后,说一下自定义单元格,就是把符合条件的单元格按照定义的方式进行显示,例如本例是将预算大于110万的单元格背景变成粉色并且字体白色加粗显示。


        private void treeList1_NodeCellStyle(object sender, GetCustomNodeCellStyleEventArgs e)
{
if (e.Column.FieldName != "Budget") return;
if (Convert.ToInt32(e.Node.GetValue(e.Column.AbsoluteIndex)) > 1100000)
{
e.Appearance.BackColor = Color.FromArgb(80,255,0,255);
e.Appearance.ForeColor = Color.White;
e.Appearance.Font = new Font(e.Appearance.Font, FontStyle.Bold);
}
}

浅谈DevExpress<五>:TreeList简单的美化——自定义单元格,加注释以及行序号,布布扣,bubuko.com

时间: 2024-10-02 22:13:49

浅谈DevExpress<五>:TreeList简单的美化——自定义单元格,加注释以及行序号的相关文章

浅谈DevExpress&lt;二&gt;:设计一个完整界面(1)

昨天谈了界面的换肤问题,今天拿一个简单的界面来介绍一下怎么设计一个五脏俱全的界面,总体效果如下图(种类的图片随便找的^^): 创建一个winform项目,在上面拉进去一个bar管理器和图片列表: 在菜单栏.工具栏和状态栏中,分别加入菜单.编辑栏.按钮和静态文本: 菜单栏改名并设置好图片: 然后改工具栏项的属性,拿第一个举个例子,后面的大同小异,选择EditItem后先将其PaintStyle属性改为CapationGlyph,然后找到Edit,选择CheckEdit,就会变成下面的样子: 依法炮

浅谈DevExpress&lt;二&gt;:设计一个完整界面(2)

下面来把剩下的工作做完,换肤功能昨天已近讨论过,今天就不重复了.首先建立三个全局变量,一个存放文件路径,一个存放数据,一个存放过滤条件. string DBFileName; DataView dataView; string[] filter = new string[3]; 取得数据并绑定到表格中: DBFileName = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, "Products.xml&

浅谈DevExpress&lt;三&gt;:在GridView中加载动态图片

今天的演示效果如下:在GridView中的下拉框中选中一种颜色,则后面的加载相应的图片,如下图: 1. 2. 3. 下面说下实现方法:首先在项目中拉一个GirdControl,在里面创建4列:ID,Name,Color,Image,并将Color和Image分别创建repositoryItemComboBox和repositoryItemPictureEdit控件,如下图: 将一个图片文件夹放到程序的启动目录中: 文件夹中包含如下图片: 接下来进行创建数据模板,先创建一个Datetable,添加

浅谈DevExpress&lt;四&gt;:TreeList中的拖拽功能

本篇要实现的目标,简单来说就是把一个treelist的节点用鼠标拖到另外的节点(自身或其他的listview)上,如下图: 1  2  3  首先,在窗口中拉入两个listview,第一个创建三列(上),第二个创建两列(下),如下图: 为第一个listview创建一些节点: 定义一个取得拖拽对象中节点的方法: private TreeListNode GetDragNode(IDataObject data) { return (TreeListNode)data.GetData(typeof(

C#基础笔记---浅谈XML读取以及简单的ORM实现

背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方案之一.下面简单谈谈XML的读取.  一. xml.linq读取xml 1.新建一个data.XML文件 1 <Customers> 2 <Customer> 3 <Name>Frank</Name> 4 <City>成都</City>

浅谈Redis五种数据结构的底层原理

概念 Redis作为一个开源的用C编写的非关系型数据库,基于优秀的CRUD效率,常用于软件系统的缓存,其本身提供了以下五种数据格式: string:字符串 list:列表 hash:散列表 set:无序集合 zset:有序集合 接下来我们就要针对这五种数据结构,来分析其底层的结构 这里选用的版本是redis-5.0.4,所以可能有很多地方和如今网络上的其他博文不太一致,不同的地方我会在文中指出 string 因为redis使用c语言开发,所以自然没有java和c++的那些字符串类库,在redis

浅谈百度地图的简单开发之结合方向传感器实现定位功能(三)

  今天我们来谈下百度地图的定位功能.在此之前我已经将百度地图的基本地图大概说了下,事实上百度地图的基本功能还有非常多的内容. 感兴趣的能够到百度地图的开发人员的官网看看.今天就開始来讲下百度地图中的定位功能. 今天所讲的百度地图所涉及的内容主要有:基本定位的实现.自己定义定位图标.结合方向传感器定位,选择定位中的几种模式(罗盘模式,普通模式,尾随模式). 一.基本定位的实现: 所谓定位无非就是获取到一个地方所处地球的经纬度坐标.这个反映到地图中就是一个点.可是怎么去实现一个定位呢?? 首先,须

浅谈Memcached服务器的简单属性

Memcached的内存算法: 1. 传统的内存管理方式是,使用完通过malloc分配的内存后通过free来回收内存,这种方式容易产生内存碎片并降低操作系统对内存的管理效率. 2. Memcached利用slab allocation机制来分配和管理内存,它按照预先规定的大小,将分配的内存分割成特定长度的内存块,再把尺寸相同的内存块分成组,数据在存放时,根据键值大小去匹配slab大小,找就近的slab存放,也存在空间浪费现象. Memcached服务器的缓存: 1. Memcached的缓存策略

[原]浅谈vue过渡动画,简单易懂

在vue中什么是动画 开始先啰嗦一下,动画的解释(自我理解??) 在一个标签里面的类容,我们视觉看到它,这时候,这个标签以什么形式出现,中间变化了什么,并且以什么形式消失,是有一个过渡的存在的方式,我叫做动画 (不是那种干出,干消失哈??,大神原谅我粗糙的说辞\(^o^)/~) 闲言碎语不多讲,上干货了 在vue中,提供给我们一个很好写过渡动画的内置组件transition 基本用法就是给我们需要动画的标签外面嵌套transition标签,并且给上属性,起码name不要忘了 <transitio