我有一个用从几个表中提取的数据填充的DataGridView (我使用的是SQLite,但我不认为这与这里相关)。列(11)中的一列可以具有值或可以为空。如果有值,我想将行显示为绿色,如果没有值,则不执行任何操作。我在CellFormatting中使用了以下代码来执行此操作:
private void dgv_CellFormatting(Object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 11)
{
if (!String.IsNullOrEmpty(dgv.Rows[e.RowIndex].Cells[11].Value.ToString()))
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;
}
}
}
如果第一行的第11列中没有值,则此方法非常有效,但如果有,则无论第11列中是否有值,整个DataGridView都将显示为绿色。
提前感谢您的帮助。
发布于 2020-07-22 05:26:21
空条件运算符"?“在这种情况下可能会有所帮助。添加?after值(参见下面的代码片段,我已经更新了它)。
if(!String.IsNullOrEmpty(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value?.ToString()))
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;
}
https://stackoverflow.com/questions/63022647
复制相似问题