gridView1.CustomColumnDisplayText += gridView1_CustomColumnDisplayText; void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "State") { switch (e.DisplayText) { case "0": e.DisplayText = "有效"; break; case "1": e.DisplayText = "無效"; break; } } }
void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { var currentView = sender as GridView; if (currentView != null && e.RowHandle == currentView.FocusedRowHandle) return; Rectangle r = e.Bounds; if (e.Column.FieldName == "F_State") { if (e.CellValue.ToString().Equals("False")) { e.Appearance.ForeColor=Color.Red; e.Appearance.DrawString(e.Cache,e.DisplayText,r); e.Handled = true; }
} }
或者以下面的這種形式也可以的、
還有一個就是改變行的顏色
在對GridControl綁定好數據后:
No.1:右鍵GridControl選擇Run Designer;
No.2:Appearance下Style Conditions點擊Add,需要注意的是每一個變色條件都得Add一個變色方案;
No.3:在Properties中需要用到的屬性依次往下詳解為:
a)Appearance下BackColor=255.255.128,BackColor2=255.255.128,此項指定符合特定條件時單元格/行背景顏色,如果兩項設置顏色不同時則為漸變效果;
要是每次都這樣設置也太不方便了。。所以我又封裝了一個方法
public void SetColumnFormatCell(object value1, object value2,Color backColor1,Color backColor2,GridColumn gridColumn,FormatConditionEnum formatType,GridView gridView) { var styleFormatCondition1 = new StyleFormatCondition(); styleFormatCondition1.Appearance.BackColor = backColor1; styleFormatCondition1.Appearance.BackColor2 =backColor2; styleFormatCondition1.Appearance.Options.UseBackColor = true; styleFormatCondition1.Column = gridColumn; styleFormatCondition1.Condition = formatType; styleFormatCondition1.Expression = "true"; styleFormatCondition1.Value1 = value1; styleFormatCondition1.Value2 = value2; gridView.FormatConditions.Add(styleFormatCondition1); }
調用:
var dev=new DataGridControlHelper(); dev.SetColumnFormatCell("無效","無效",Color.Red,Color.Red,gridColumn03,FormatConditionEnum.Equal,gridView1);
雖然效果是出來了。但是我覺得效率很差。
要是有那位網友有更好的方案。請分享一下。謝謝