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 ... 
随机推荐
- Python MySQL(MySQLdb)
			From: http://www.yiibai.com/python/python_mysql.html Python标准的数据库接口的Python DB-API(包括Python操作MySQL).大 ... 
- linux 上安裝lnmp
			1.確保有一台服務器可以正常運行 2.熟練知道一些基本的命令 3.這裡我以lnmp集成環境為例 https://lnmp.org/install.html 4.安裝大約30分鐘左右 5.安裝完畢,訪問 ... 
- git默认忽略文件的大小写
- Memcached存储机制
			Memcached存储机制 memcached 内存管理 分析(转) 缓存.缓存算法和缓存框架简介 memcached全面剖析–PDF总结篇 
- spark  not contain
			参考网址 http://stackoverflow.com/questions/33608526/is-there-a-way-to-filter-a-field-not-containing-som ... 
- 利用neon技术对矩阵旋转进行加速
			一般的矩阵旋转操作都是对矩阵中的元素逐个操作,假设矩阵大小为m*n,那么时间复杂度就是o(mn).如果使用了arm公司提供的neon加速技术,则可以并行的读取多个元素,对多个元素进行操作,虽然时间复杂 ... 
- 基于PHP采集数据入库程序(一)
			前几天有一朋友要我帮做一个采集新闻信息的程序,抽了点时间写了个PHP版本的,随笔记录下. 说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示 也算是简单 ... 
- java并发包研究之-ConcurrentHashMap
			概述 HashMap是非线程安全的,HashTable是线程安全的. 那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什 ... 
- 【python】泰语分词器安装
			1.安装icu http://blog.csdn.net/liyuwenjing/article/details/6105388 2.安装pyicu https://anaconda.org/kale ... 
- wget 下载指定url路径下的 指定类型的(全部)文件
			wget http://mirrors.ustc.edu.cn/ubuntu/pool/main/g/gcc-4.4/ -r -np -nd -A .deb -e robots=offwget htt ... 
