我目前正在开发一个项目,该项目利用DataGridView块显示从远程MySQL数据库中提取的数据的搜索结果。
我正在尝试根据其中一列的字符串值重新着色每行的背景
代码:
foreach (DataGridViewRow row in this.dgvSearchResults.Rows)
{
if (row.Cells[4].Value.ToString() == "Outbound")
{
row.DefaultCellStyle.BackColor = Color.LightSkyBlue;
}
else if (row.Cells[4].Value.ToString() == "Inbound")
{
row.DefaultCellStyle.BackColor = Color.LightCyan;
}
else
{
row.DefaultCellStyle.BackColor = Color.White;
};
}
我的错误:
对象引用未设置为对象的实例
我似乎无法想出这一点,任何反馈都有帮助!
答案 0 :(得分:2)
确保实际上至少有5个单元格(C#数组为0),并确保Value
上的.ToString()
不是null
。
对于后者,您可以执行以下操作:
if (row.Cells[4].Value != null)
{
if (row.Cells[4].Value.ToString() == "Outbound")
{
row.DefaultCellStyle.BackColor = Color.LightSkyBlue;
}
else if (row.Cells[4].Value.ToString() == "Inbound")
{
row.DefaultCellStyle.BackColor = Color.LightCyan;
}
else
{
row.DefaultCellStyle.BackColor = Color.White;
}
}
else
{
row.DefaultCellStyle.BackColor = Color.White;
}