2016-09-23 88 views
0

我需要根据行中的数据更改数据网格视图行的颜色。更改DataGridView颜色时未将对象引用设置为对象的实例

我的代码是:

foreach (DataGridViewRow Myrow in datagrid1.Rows) 
{    
    if (Myrow.Cells[0].Value.Equals("Red")) 
    { 
     Myrow.DefaultCellStyle.BackColor = Color.Red; 
    } 
    { 
     Myrow.DefaultCellStyle.BackColor = Color.Green; 
    } 
} 

但是当我尝试运行它,我得到:对象引用不设置到对象的实例

我想这是因为它使循环中的每一行,直到它达到一些具有空值的部分。 如何阻止它这样做?

+2

可能重复[什么是NullReferenceException,以及如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix -it) – Fabio

+1

在循环开始处添加if(row.Cells [0] .Value == null || row.Cells [0] .Value == DBNull.Value)return;'。你也可以在循环的开头添加'if(row.IsNewRow)return;'。 –

回答

1

我想我需要将DataGridView的AllowUserToAddRows更改为false,并删除了底部的空行,它给了我空值。

如果有其他人进入相同的情况,我会离开这里。

相关问题