我用这段代码改变了条件的行颜色,但代码不起作用!我不知道为什么,我有一个错误:DataGridview的C#彩色行
System.NullReferenceException类型的未处理的异常出现在DB(项目名称)的.exe
当我到达“ color = dataGridView1.Rows ....“
我该怎么办?
while (true)
{
color = dataGridView1[2, rowindex].Value.ToString();
if (color == "IDLE")
{
dataGridView1.Rows[rowindex].DefaultCellStyle.BackColor = Color.Orange;
}
if (color == "ACTIVE")
{ dataGridView1.Rows[rowindex].DefaultCellStyle.BackColor = Color.Green; }
if (color == "MAINTENANCE")
{ dataGridView1.Rows[rowindex].DefaultCellStyle.BackColor = Color.Purple; }
if (color == "DISMISSED")
{ dataGridView1.Rows[rowindex].DefaultCellStyle.BackColor = Color.Red; }
if (color == null)
{ break; }
rowindex++;
}
'我应该怎么办'进行调试:通过走行线,发现问题 – ASh
源使用debugger..perhaps你应该使用一个foreach循环或通过适当的for循环回路行数也是什么时候你设置的值为false跳出while循环.. – MethodMan
你应该使用这样的foreach循环,然后检查行中的值,例如 'foreach(DataGridViewRow row dataGridView1。行')假设列的名称是'颜色',如果是的话,我会发布一个重构的答案,供您测试 – MethodMan