如上图:
CellContentClick获取dataGridView行索引有时准确有时又不准确,如上图,行索引还记录的上一次点击单元格的行索引代码如下://获取dataGridView行索引:
 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            RowID = e.RowIndex;   
        }private void TS_Del_Click(object sender, EventArgs e)
        {
            if (RowID > -1)
            {
                DialogResult Result = MessageBox.Show("确定要删除: "+this.dataGridView1.Rows[RowID].Cells    [2].Value+" 吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
                if(Result==DialogResult.OK)
                 {
                     ds.Tables["typeA"].Rows[RowID].Delete();
                     SqlCommandBuilder Builder = new SqlCommandBuilder(ADP);
                     ADP.Update(ds.Tables["typeA"]);
                     ds.Tables["typeA"].Clear();
                     getdate();
                 }            }
            else
            {
                MessageBox.Show("索引ID不能为-1!","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
            }
        }

解决方案 »

  1.   

    下面那段代码忘了写备注,下面的代码是点击<删除>的代码!
      

  2.   

    而且你是CellContentClick,而不是CellClick
      

  3.   

    我是用的左键啊,并且我也试过了CellClick
    效果一样!
    有时候还会:
    打开窗口后第一次点击一个单元格后再点删除,会提示: 索引ID不能为-1!
      

  4.   

    RowEnter  不行,
    我要的效果是先选择一个单元格,然后点击删除按钮,就能删除这一行
      

  5.   

    楼主用的是CellContentClick  注意是内容,第二次才能选中内容.
      

  6.   

    把 if (RowID > -1) 
    换成: if (dataGridView1.CurrentRow.Index> -1)
      

  7.   


    dataGridView1.CurrentRow.Index 是当前行,
    但是当我点击当前行后,我再点击<删除>按钮时,这行还是当前行吗?
      

  8.   

    还有我也试过了CellClick 为什么效果还是一样呢?
      

  9.   

    感谢lzsh0622,你说的方法可以,谢谢!
    结贴给份,呵呵