在 DataGridView 中删除行时出错

Error when deleting a Row in a DataGridView

我试图删除我的 DataTable 或 DataViewGrid 中的一行并且它有效,但是如果我 select 在该行的任何地方而不是整行本身,它会抛出错误并且代码停止。有没有办法做到这一点,当我 select 行的一部分并点击删除时,整行被删除,或者至少是一个 If Else 语句来实现它,这样代码就不会崩溃,如果整个行未 selected?

这是我的代码,用于在单击按钮时删除行。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    Dim i As Integer = DataGridView1.SelectedRows(0).Index
    DataGridView1.Rows.RemoveAt(i)

End Sub

您可以使用以下代码删除 DataGridView 中的行。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    If DataGridView1.Rows.Count > DataGridView1.CurrentCell.RowIndex + 1 Then
        DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)
    End If
End Sub

或者如果你想按'Delete'键删除行:

Private Sub DataGridView1_KeyDown(sender As Object, e As KeyEventArgs) Handles DataGridView1.KeyDown
    If e.KeyCode = Keys.Delete Then
        If DataGridView1.Rows.Count > DataGridView1.CurrentCell.RowIndex + 1 Then
            DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)
        End If
    End If
End Sub