C# XtraGrid的行指示器(RowIndicator)行号以及图标设置
以下是几种对Xtragrid的行指示器的几种操作方法,在实际场景当中,很多都需要用到,直接上效果图和源码
一、基本篇—设置表头行号
1、效果图

2、实现方法
需要对XtraGrid事件CustomDrawRowIndicator 进行操作
this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.CustomDrawRowIndicator);
private void CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
if (e.Info.IsRowIndicator)
{
if (e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString().Trim();
}
else if (e.RowHandle < && e.RowHandle > -)
{
e.Info.DisplayText = "G" + e.RowHandle.ToString();
}
}
}
二、提升篇—设置表头序号列标题
1、效果图

2、实现方法
同上需要对XtraGrid事件CustomDrawRowIndicator 进行操作
this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.CustomDrawRowIndicator);
private void CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.Kind == DevExpress.Utils.Drawing.IndicatorKind.Header)
{
e.Appearance.DrawBackground(e.Cache, e.Bounds);
e.Appearance.DrawString(e.Cache, "序号", e.Bounds);
e.Handled = true;
}
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
if (e.Info.IsRowIndicator)
{
if (e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString().Trim();
}
else if (e.RowHandle < && e.RowHandle > -)
{
e.Info.DisplayText = "G" + e.RowHandle.ToString();
}
}
}
二、晋级篇—设置表头图标
1、效果图

2、实现方法
同上需要对XtraGrid事件CustomDrawRowIndicator 进行操作
1 this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.CustomDrawRowIndicator);
1 private void CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
2 {
3 if (e.Info.Kind == DevExpress.Utils.Drawing.IndicatorKind.Header)
4 {
5 e.Appearance.DrawBackground(e.Cache, e.Bounds);
6 e.Appearance.DrawString(e.Cache, "序号", e.Bounds);
7 e.Handled = true;
8 }
9 if (e.Info.IsRowIndicator)
10 {
11 if (e.RowHandle >= 0)
12 {
13 GridView gridView = sender as GridView;
14 if (gridView == null)
15 return;
16
17 e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
18 e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
19 try
20 {
21 if (Convert.ToDouble(gridView.GetRowCellValue(e.RowHandle, "fTargetSRiseValue")) <= Convert.ToDouble(gridView.GetRowCellValue(e.RowHandle, "fMonitorTargetRiseValue")))
22 {
23 e.Handled = true;
24 e.Painter.DrawObject(e.Info);
25 e.Graphics.DrawImageUnscaled(imageCollection1.Images[0], e.Bounds.X, e.Bounds.Y + 3);//位置可以微调
26 }
27 if (Convert.ToDouble(gridView.GetRowCellValue(e.RowHandle, "fTargetFallValue")) <= Convert.ToDouble(gridView.GetRowCellValue(e.RowHandle, "fMonitorTargetFallValue")))
28 {
29 e.Handled = true;
30 e.Painter.DrawObject(e.Info);
31 e.Graphics.DrawImageUnscaled(imageCollection1.Images[1], e.Bounds.X, e.Bounds.Y + 3);//位置可以微调
32 }
33 }
34 catch (Exception)
35 {
36 e.Handled = false;
37 }
38 }
39 else if (e.RowHandle < 0 && e.RowHandle > -1000)
40 {
41 e.Info.DisplayText = "G" + e.RowHandle.ToString();
42 }
43 }
44 }
PS:如有问题,请留言,未经允许不得私自转载,转载请注明出处:http://www.cnblogs.com/xuliangxing/p/6775438.html


C# XtraGrid的行指示器(RowIndicator)行号以及图标设置的更多相关文章
- Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- DataGridView自定义行样式和行标题
定义两个样式对象: //定义两种行样式 private DataGridViewCellStyle m_RowStyleNormal; private DataGridViewCellStyle m_ ...
- vim 实际行跟屏幕行移动命令
我们使用vim的时候,经常会碰到那种情况,就是我们输入的内容过长,中间一直不换行.当我们一行的长度超出电脑屏幕的时候,我们会发现这时候文字自动换行了.不过,如果你使用行号看的话,其实这新的一行是没有行 ...
- PyQt学习随笔:QTableWidget的visualRow、visualColumn、logicalRow、logicalColumn(可见行、逻辑行、可见列、逻辑列)相关概念及方法探究
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概念 关于逻辑行logicalRow.列logicalColumn和可见行visualRow.列 ...
- jquery Datatables 行数据删除、行上升、行下降功能演示
Datatables 是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 官方网站:http://www.datatables.net Datatables ...
- linux 如何显示一个文件的某几行(中间几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- 使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空
使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空 添加 alter table table_name add field_name field_type; 添加,并设置默认值,及非 ...
- JavaScript 使用反斜杠对代码行进行折行
JavaScript对代码行进行折行-使用反斜杠 您可以在文本字符串中使用反斜杠对代码行进行换行.下面的例子会正确地显示: <html> <head> <script t ...
随机推荐
- CSS3和jQuery实现的自定义美化Checkbox和Radiobox
现在经常可以在网络上看到一些非常奇特的表单元素,例如Checkbox复选框和Radiobox单选框,浏览器默认的样式确实是太丑了,而且更让人蛋疼的是各个浏览器的样式还不统一,考虑到现在越来越多的用户使 ...
- Runtime、System、Object
Runtime---->Runtime.getRuntime().gc(); System---->System.gc(); Object---->finalize();
- HDU 5414 CRB and String (2015年多校比赛第10场)
1.题目描写叙述:点击打开链接 2.解题思路:本题要求推断字符串s是否能通过加入若干个字符得到字符串t. 首先,能够知道,s必须是t的一个子串(注意:不是连续子串). 第二.因为插入的新字符和它前面的 ...
- Dominoserver 安装
domino安装及语言包安装 http://wenku.baidu.com/view/f473600d581b6bd97f19ea9b.html dominoserver 安装后启动配置: http: ...
- Java Web入门必知
Java Web应用的核心技术是Java Server Page和Servlet.此外,开发一个完整的Java Web应该涉及一下几种概念及技术. 1.Servlet组件 Serv ...
- 内存管理 初始化(二)bootmem位图分配器建立 及 使用
本地的笔记有点长,先把bootmem位图分配器的建立 及 使用过程做下梳理. 都是代码,上面做了标注.开始的汇编部分省略了(涉及的内容不多,除了swapper_pg_dir的分配). 该记录不会再添 ...
- saltstack系列2之zabbix-agent自动化部署
实施前提条件 zabbix-agent通过编译安装的,打成tar包,并且自己先配好master的ip等等之类的配置在/etc下,然后我们后面只需要修改一个Hostname这个配置项即可.. salts ...
- 常用的PostBuild Event 脚本
参考: http://blog.csdn.net/fengzhijiaxu/article/details/4827364 http://blog.csdn.net/teng_ontheway/art ...
- 安装 运行yum报错:No module named yum
报错情况: There was a problem importing one of the Python modulesrequired to run yum. The error leading ...
- PHP 使用memcached
1.添加扩展包 php_memcache.dll 2.在PHP.INI添加 extension=php_memcache.dll 3.程序 <?php //创建一个mem对象实例 $mem=ne ...