private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (gridView1.GetDataRow(e.RowHandle) == null)
return;
if (e.Column.FieldName != "selected")
{
if (e.Column.FieldName =="WARRANTY_NO")
{
if (gridView1.GetDataRow(e.RowHandle)["WARRANTY_NO"].ToString().Trim() == "")
{
//该行数据的该列的值不为空时时,其背景色为Red
e.Appearance.BackColor = Color.Red;//设置单元格变色
//e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色
}
}
else if (e.Column.FieldName == "BUY_ORDER_NO")
{
if (gridView1.GetDataRow(e.RowHandle)["BUY_ORDER_NO"].ToString().Trim() == "")
{
//该行数据的该列的值不为空时时,其背景色为Red
e.Appearance.BackColor = Color.Red;//设置单元格变色
//e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色
}
}
else if (e.Column.FieldName == "CAR_NO")
{
string AAA = gridView1.GetDataRow(e.RowHandle)["CAR_NO"].ToString().Trim();
if (gridView1.GetDataRow(e.RowHandle)["CAR_NO"].ToString().Trim() == "")
{
//该行数据的该列的值不为空时时,其背景色为Red
e.Appearance.BackColor = Color.Red;//设置单元格变色
//e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色
}
}
else if (e.Column.FieldName == "PAST_NO")
{
if (gridView1.GetDataRow(e.RowHandle)["PAST_NO"].ToString().Trim() == "")
{
//该行数据的该列的值不为空时时,其背景色为Red
e.Appearance.BackColor = Color.Red;//设置单元格变色
//e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色
}
}
else if (e.Column.FieldName == "WEIGH_SITE")
{
if (gridView1.GetDataRow(e.RowHandle)["WEIGH_SITE"].ToString().Trim() == "")
{
//该行数据的该列的值不为空时时,其背景色为Red
e.Appearance.BackColor = Color.Red;//设置单元格变色
//e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色
}
}
}
}注:
由于 CustomDrawCell 事件是重绘当前GridView的所有列,所以如果需要整行变色,只要设置所有的列都变色即可实现
本文介绍了一种在DataGridView中根据特定列的值为空时改变单元格背景颜色的方法。通过使用CustomDrawCell事件,可以实现对指定列数据为空时背景色变为红色的效果。
2752

被折叠的 条评论
为什么被折叠?



