• 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

  • 相关阅读:
    springboot集成flowable oracle数据库版本报错
    Vue.js中this.$nextTick()的使用
    Centos下虚拟环境的创建以及python3安装
    SaltStack实战
    第一章 Jenkins安装配置
    JavaScript 常用正则表达式
    ps 掉出字符设备面板,修改颜色等
    博客验证码破解
    我终于想起密码了~
    Linux grep 命令
  • 原文地址:https://www.cnblogs.com/xuliangxing/p/6775438.html
Copyright © 2020-2023  润新知