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)
{
}
}
这样,你就能得到一个没有闪烁的状态图片列了。

C# Winform 小技巧(Datagridview某一列按状态显示不同图片)的更多相关文章
- winform datatable 或datagridview中添加列
DataGridViewCheckBoxColumn dg = new DataGridViewCheckBoxColumn(); dg.HeaderText = "选择"; dg ...
- chrome 小技巧:保持元素的hover状态
审查元素,选中需要hover的标签 点击"Styles"菜单中的":hov",弹出 Force element state 选中相应的 :hover :acti ...
- css的一些小技巧。修改input样式
在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...
- sql里的多行多列转一行多列小技巧
---恢复内容开始--- [ 今天下午接受了一个紧急小任务,是将一组比赛记录统计出来,将象棋游戏玩家的两条记录在一行里面显示,进数据库看之后是首先想到的是行转列,但是一开始就觉得不对,后来写到一半确实 ...
- WinForm 清空界面控件值的小技巧
原文:WinForm 清空界面控件值的小技巧 在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextB ...
- Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值
不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridV ...
- winform之权限判断小技巧
每个页面都要判断用户是否登陆并且判断用户是否拥有相应的权限,,以至于每个页面都要判断Session["user"]是否为空,后期不好维护 小技巧: 因为每个页面都继承与Page类, ...
- C# WinForm DataGridView 给标题列增加序号及格式化某个字段
DataGridView 给标题列增加序号 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBind ...
- C# WinForm开发系列 - DataGridView
1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHe ...
随机推荐
- 【转】深入了解CPU两大架构ARM与X86
来自:https://blog.csdn.net/u014641018/article/details/53484565 重温下CPU是什么 中央处理单元(CPU)主要由运算器.控制器.寄存器三部分组 ...
- LevelDB 整体架构
[LevelDB 整体架构] 从图中可以看出,构成LevelDb静态结构的包括六个主要部分:内存中的MemTable和Immutable MemTable以及磁盘上的几种主要文件:Curren ...
- 网页中给超链接添加"是否确认"的方法
最近在做数据库, 需要给一个"删除"链接增加是否确认的弹出框, 在网上查到了两种方法: 1, 先看看最麻烦的一种 <html xmlns="http://www.w ...
- Python_06-函数与模块
1.获取当前路径 >>> import os >>> os.path() >>> os.getcwd() 'D:\\Python34' os.pa ...
- Python setattr() 函数
Python setattr() 函数 Python 内置函数 描述 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. 语法 setattr() 语法: ...
- 单词的添加与查找 · Add and Search Word
[抄题]: 设计一个包含下面两个操作的数据结构:addWord(word), search(word) addWord(word)会在数据结构中添加一个单词.而search(word)则支持普通的单词 ...
- IPMI设置与使用(远程控制服务器)
如果服务器crash了或者就hang住了,我们不必要跑到机房去按电源键的,因为我们也想“运筹帷幄之中,决胜千里之外”嘛.我们可以用IPMI,它可以让我们远程用一条命令开启(关闭.重启)一台服务器,也可 ...
- centos7 单台zookeeper安装
1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/services/zookeeper 2.进入到 /usr/local/ser ...
- flume学习以及ganglia(若是要监控hive日志,hive存放在/tmp/hadoop/hive.log里,只要运行过hive就会有)
python3.6hdfs的使用 https://blog.csdn.net/qq_29863961/article/details/80291654 https://pypi.org/ 官网直接搜 ...
- [C#]DES再一例(转)
public class Encrypt { internal string ToEncrypt(string encryptKey, string str) { try { byte[] P_byt ...