private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 if (e.RowIndex >= 0 && e.ColumnIndex == dataGridView1.Columns["status"].Index)
            {
                string precision = Convert.ToString(e.Value);
                if (precision == "5")
                {
                    e.Value = "完工";
                    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = System.Drawing.Color.Blue;                }
                else if (precision == "1")
                {
                    e.Value = "插单";
                    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Green;
                }
                else
                {
                    e.Value = "正常";
                    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
                }
                e.FormattingApplied = true;
            }         
怎么报错:"未将对象引用设置到对象的实例。"可以确定e.RowIndex >0.大家帮忙看下

解决方案 »

  1.   

    断点看看  string precision = Convert.ToString(e.Value); e.value可是为null
      

  2.   

    if (e.RowIndex >= 0 && e.ColumnIndex == dataGridView1.Columns["status"].Index)这里报错:未将对象引用设置到对象的实例。
    把dataGridView1_CellFormatting事件去掉能显示10多条数据出来,status里全都不为NULL!
      

  3.   

    dataGridView1.Columns["status"].Index
    红色的是列名还是,列上面显示的文字?
      

  4.   

    哦,直接绑定数据库还是自己设置的表?换成数字试试。或者MessageBox.Show(dataGridView1.Columns[1].Name)看看Name; 因为dataGridView1.Columns["status"].Index 没有Name 为“status”时会有你那个错误