DataGridView单元格着色引发错误

时间:2015-04-06 15:21:06

标签: c# visual-studio datagridview

我目前正在开发一个项目,该项目利用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;
                };
            }

我的错误:

  

对象引用未设置为对象的实例

enter image description here

我似乎无法想出这一点,任何反馈都有帮助!

1 个答案:

答案 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;
}