zoukankan      html  css  js  c++  java
  • C# Winform 小技巧(Datagridview某一列按状态显示不同图片)

    步骤:

    一、导入状态图片到项目中:

    二、在窗体中声明一个图片数组,并在窗体的OnLoad事件中加入图片资源:

    /// <summary>
    /// 存储状态图片序列,避免同一状态对图片重复读取引发闪烁。
    /// </summary>
    private Image[] StatusImgs;

    private void FrmSer_Main_Load(object sender, EventArgs e)
    {

    StatusImgs = new Image[] { Resources.TaskNA, Resources.TaskPause, Resources.TaskRun, Resources.TaskStart, Resources.TaskStop, Resources.TaskTimer };

    }

    三、处理Datgridview的格式化事件:

            private void DgvTaskList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
    
                if (DgvTaskList.Rows[e.RowIndex].IsNewRow) return;
                if (e.ColumnIndex != 0) return;
    
                string stas =OPString.NZ2Str(DgvTaskList.Rows[e.RowIndex].Cells["RunStatus"].Value);
                if (string.IsNullOrEmpty(stas)) stas = "Timer";
                try
                {
                    DataGridViewImageCell tmpCell = (DataGridViewImageCell)DgvTaskList.Rows[e.RowIndex].Cells["StatusImg"];
    
                    switch (stas)
                    {
                        case "NA":
                            tmpCell.Value = StatusImgs[0];
                            tmpCell.ToolTipText = "闲置";
                            break;
                        case "Pause":
                            tmpCell.Value = StatusImgs[1];
                            tmpCell.ToolTipText = "暂停";
                            break;
                        case "Run":
                            tmpCell.Value = StatusImgs[2];
                            tmpCell.ToolTipText = "运行中";
                            break;
                        case "Start":
                            tmpCell.Value = StatusImgs[3];
                            tmpCell.ToolTipText = "解析中";
                            break;
                        case "Stop":
                            tmpCell.Value = StatusImgs[4];
                            tmpCell.ToolTipText = "任务终止";
                            break;
                        case "Timer":
                            tmpCell.Value = StatusImgs[5];
                            tmpCell.ToolTipText = "循检中";
                            break;
                        default:
                            tmpCell.ToolTipText = "循检中";
                            break;
                    }
                }
                catch (Exception)
                {
                }
            }
    

      这样,你就能得到一个没有闪烁的状态图片列了。

  • 相关阅读:
    认识 liunx 文件属性
    laravel 配置mongodb 出现 Database [text] not configured 问题【已解决】
    php 判断字符串的长度的两种方法
    php 循环里面套sql怎么解决
    php 给入门新手们填的第一个坑
    Vue 调用其他Vue或自己Vue中的方法时,this指向不生效
    绑定点击事件触发多次
    computed 计算属性的获取和设置
    el-Cascader 最后一项删不掉
    前端 --- 格式化的配置
  • 原文地址:https://www.cnblogs.com/imes/p/9887429.html
Copyright © 2011-2022 走看看