我必须更改单元格的背景颜色,当它们的值为字符串或空时,这是我写的代码,类似于其他代码:
for (int rowIndex = 0; rowIndex < dataGridView1.RowCount; rowIndex++)
{
string conte = dataGridView1.Rows[rowIndex].Cells[7].Value.ToString() ;
if (string.IsNullOrEmpty(conte))
{
// dataGridView1.Rows[rowIndex].Cells[7].Style.BackColor = Color.Orange;
}
else
{ dataGridView1.Rows[rowIndex].Cells[7].Style.BackColor = Color.Orange; }
}
数据集已完成,显示填充的datagridview并显示此错误:
我该如何解决这个问题?有另一种方法来编写代码吗?
答案 0 :(得分:5)
我会使用以下内容迭代单元格。
foreach (DataGridViewRow dgRow in dataGridView1.Rows)
{
var cell = dgRow.Cells[7];
if (cell.Value != null) //Check for null reference
{
cell.Style.BackColor = string.IsNullOrEmpty(cell.Value.ToString()) ?
Color.LightCyan :
Color.Orange;
}
}
答案 1 :(得分:3)
您不需要ToString()
。见here.
以下代码就足够了。
string conte = dataGridView1.Rows[rowIndex].Cells[7].Value;
你也可以试试:
if (string.IsNullOrEmpty(dataGridView1.Rows[0].Cells[7].Value as string))