用DataGrid控件和Ado结合,对Datagrid控件中的数据进行删除,如果删除时不是选中整行,而是让光标停在某行的某个单元格内时点击删除,这个时候就会出现错误提示:“行句柄引用了一个已被删除的行或被标识为删除的行”,哪位高人愿意帮忙,万分感谢!

解决方案 »

  1.   

    还要建议将删除代码写在keypress中,按回车删除,不要使用鼠标。鼠标点击时,它会存在一个问题:它执行是点击前一那一行,而不你点击的目标行!比如原来光标在最后一行(特别是带*的那一行),你这时点击删除第一行,其实代码执行地是删除那个最后一行(如果光标正在带*的那一行,由于此带*的行是不存在的,也就会出现你的错误提示)。可以先测试
    datagrid1_click中加代码:
       Dim i As Integer
       
       On Error GoTo handler
       DataGrid1.SetFocus
       
       If DataGrid1.Row = -1 Then
          MsgBox "最后一行"
       Else
          MsgBox DataGrid1.Row
       End If  ' For i = 0 To 2
      '    MsgBox DataGrid1.Columns.Item(i) '      RowArray(i) = DataGrid1.Columns.Item(i)
      ' Next i
      Exit Sub
    handler:
      Exit Sub先把光标置于最后一行,再点击倒数第二行,看看结果就知道了:提示:row handle referred to a deleted row or a row ed for deletion(中文就是你的那个提示)。
      

  2.   

    我做时间都在keypress中按回车删除,用光标键定位,不会出错。
      

  3.   

    I am sorry! 回车是最方便的。但如果用户不这样,datagrid是有麻烦!
      

  4.   

    用ADODB对象来绑定,在回车键中删除,不出错。