dataGridView1.Rows[dataGridView1.CurrentRow.Index-1].Selected   =   true; 

解决方案 »

  1.   

    关键是可能在datagridview用户自定义删除啊,可能两三百条记录删除其中的一部分呢,
      

  2.   

    判断:_currentIndex 为删除前所选中的索引if (dataGridView1.Rows.Count > 0)
     {
        dataGridView1.ClearSelection();
        当选中的索引大于或等于所有行时,说明删除的为最后行,所以在这里要减1
        if (_currentIndex >= dataGridView1.Rows.Count)
        {
            dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["HdayID"].Selected = true;
        }
       else
       {         dataGridView1.Rows[_currentIndex].Cells["HdayID"].Selected = true;
         }
     }
      

  3.   

    private void delButton_Click(object sender, EventArgs e)
            {
                dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
                    dataGridView1.Rows[dataGridView1.CurrentRow.Index].Selected = true;
                    prdtcode.text = ds.Tables[0].Rows[dataGridView1.CurrentRow.Index]["prdtcode"].ToString().Trim();
                    unittext.Text = ds.Tables[0].Rows[dataGridView1.CurrentRow.Index]["m1_baunit"].ToString().Trim();
                }
            }
    这是删除事件,删除之后再选择刚删除行的下一行就出现"不能通过已删除的行访问该行的信息"
    当然数据也不能绑定到textbox,如果不删除的话便可以绑定
      

  4.   

    datatalbe删除后只是状态改变了,其实索引还存在的,而datagridview的索引就与datatable不一致了
    此时再取datagridview 删除后的一些行值就会出现问题,怎样解决