步驟:數組
1、導入狀態圖片到項目中:orm
2、在窗體中聲明一個圖片數組,並在窗體的OnLoad事件中加入圖片資源:blog
/// <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 };ip
}資源
3、處理Datgridview的格式化事件:string
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) { } }
這樣,你就能獲得一個沒有閃爍的狀態圖片列了。it