还要建议将删除代码写在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(中文就是你的那个提示)。
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(中文就是你的那个提示)。