以下是几种对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