2013-02-05 37 views
1

我希望通過該代碼僅對空單元格進行着色。 但我得到的所有細胞色。 誰能告訴我哪裏是我的錯..不能得到空白單元格只有顏色

private void gridView3_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) 
{ 
     GridView View = sender as GridView; 
     if(e.Column.FieldName == "First Name") 
     { 
      string category = View.GetRowCellDisplayText(e.RowHandle, View.Columns["First Name"]); 
      if(category != "") 
      { 
       e.CellStyle.BackColor = Color.DeepSkyBlue; 
      } 
     } 
} 

回答

3

好一件事的條件是錯誤的:

if (category != "") 

你過濾,使得非空細胞獲得彩色。所以先替換爲String.IsNullOrEmpty(category)

接下來,因爲你正在使用的DevExpress控件,也許你可以使用內置的條件格式:http://documentation.devexpress.com/#WindowsForms/CustomDocument759

事情是這樣的,也許:

StyleFormatCondition condition1 = new DevExpress.XtraGrid.StyleFormatCondition(); 
condition1.Appearance.BackColor = Color.DeepSkyBlue; 
condition1.Appearance.Options.UseBackColor = true; 
condition1.Condition = FormatConditionEnum.Expression; 
condition1.Expression = "[First Name] == ''"; 
gridView1.FormatConditions.Add(condition1); 
+0

問題是我不能使用「外觀」 「DevExpress.XtraGrid.StyleFormatCondition」不包含「外觀」的定義 是因爲我使用Visual Studio 2003嗎? – Nejthe

+0

@Nejthe - 不,與此無關。要麼你有一個較舊版本的DevExpress控件。無論哪種方式,如果您的控件有問題,請在他們的支持論壇上詢問。 – dutzu

+0

好的謝謝你..我感謝你的幫助 – Nejthe

2

您的代碼着色非空單元格(檢查你的病情if(category != "")

對我來說,以下工作:

private void gridView3_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) 
{ 
    GridView View = sender as GridView; 
    if (e.Column.FieldName == "First Name" && 
     string.IsNullOrEmpty(View.GetRowCellDisplayText(e.RowHandle, e.Column))) 
    { 
     e.Appearance.BackColor = Color.DeepSkyBlue; 
    } 
} 
+0

非常感謝你.. 我的問題在於我得到這個錯誤... 'DevExpress.XtraGrid.StyleFormatCondition'不包含'Appearance'的定義。這是因爲我使用visual studio 2003嗎? – Nejthe