C# XtraGrid的行指示器(RowIndicator)行号以及图标设置

以下是几种对Xtragrid的行指示器的几种操作方法,在实际场景当中,很多都需要用到,直接上效果图和源码

一、基本篇—设置表头行号

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     e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
 4     if (e.Info.IsRowIndicator)
 5     {
 6         if (e.RowHandle >= 0)
 7         {
 8             e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
 9         }
10         else if (e.RowHandle < 0 && e.RowHandle > -1000)
11         {
12             e.Info.DisplayText = "G" + e.RowHandle.ToString();
13         }
14     }
15 }

二、提升篇—设置表头序号列标题

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     e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
10     if (e.Info.IsRowIndicator)
11     {
12         if (e.RowHandle >= 0)
13         {
14             e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
15         }
16         else if (e.RowHandle < 0 && e.RowHandle > -1000)
17         {
18             e.Info.DisplayText = "G" + e.RowHandle.ToString();
19         }
20     }
21 }

二、晋级篇—设置表头图标

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

posted @ 2017-04-27 17:53  法号阿兴  阅读(2619)  评论(0编辑  收藏  举报