可以';t使空单元格只着色
本文关键字:单元格 可以 | 更新日期: 2023-09-27 17:57:56
我希望通过该代码只给空单元格上色。但我把所有的细胞都染上了颜色。谁能告诉我哪里是我的错吗。。
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;
}
}
}
有一点条件是错误的:
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);
您的代码正在为非空单元格着色(检查您的条件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;
}
}