2012-06-29 423 views
6

我有一個40列的devexpress xtragrid。 我比較每個細胞值與其他,如果它不同,那麼我想改變細胞的背景顏色。 我嘗試使用GridViewInfo,但它只需要在屏幕上可見的列。但是我想爲所有列執行操作(不適用於RowCellStyle) 您是否有解決方案? 謝謝!如何在Devexpress Grid中更改單元格的背景顏色?

回答

4

掛鉤到xtragrid的RowStyle事件。

private void maintainDataControl_RowStyle(object sender, RowStyleEventArgs e) 
{ 
    if (e.RowHandle >= 0) 
    { 
     GridView view = sender as GridView; 

     // Some condition 
     if((string)view.GetRowCellValue(
      e.RowHandle, view.Columns["SomeRow"]).Equals("Some Value")) 
     { 
      e.Appearance.BackColor = Color.Green; 
     } 
    } 
} 
+0

比較功能上的按鈕,我。怎麼可以叫RowStyle事件? – Lavy

+0

你不能在按鈕點擊事件上做到這一點。你必須處理'RowStyle'或'CustomDrawCell'。把他們的條件放在那裏,並在對按鈕上的數據進行更改後簡單地使網格失效。 –

+0

我已經使用RowCellStyle.Thanks獲得了幫助!:) – Lavy

5

您需要處理CustomDrawCell你的GridView的,這裏是一個代碼剪斷的是改變名稱欄的顏色,基於另一列valoe(年齡列)

private void gridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e) 
    { 
     if (e.Column == colName) 
     { 
      var age = Convert.ToInt32(gridView.GetRowCellValue(e.RowHandle, colAge)); 
      if (age < 18) 
       e.Appearance.BackColor = Color.FromArgb(0xFE, 0xDF, 0x98); 
      else 
       e.Appearance.BackColor = Color.FromArgb(0xD2, 0xFD, 0x91); 
     } 
    } 

好運

相關問題