2016-09-23 6 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-do-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に変更する必要があり、空の行を削除して、空の値を与えていることを確認しました。

誰かが同じ状況に陥った場合、私はここに残します。

関連する問題