在以编程方式选择它们之后无法删除datagridview行

时间:2015-11-18 20:18:07

标签: vb.net datagridview

嗨,我在虚拟模式下有一个datagridview。

使用此代码,如果它们包含某个字符串,我会选择多行:

Try
            For Each row As DataGridViewRow In DataGridView1.Rows
                If row.Cells(1).Value.ToString().Contains(TextBox1.Text) Then
                    DataGridView1.Rows(row.Index).Selected = True
                End If
            Next
        Catch
        End Try

此代码用于选择行,但是我无法使用DEL键删除任何行。它几乎就像行没有被触发它们实际被选中了。如果我按住Ctrl键单击不属于选择组的另一行,我可以删除所有选定的行。这种控制点击火是否有一种更新,让网格知道选择了哪些行?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

似乎这是一个非常愚蠢的问题。我通过使用以下方法将焦点设置回数据网格来解决它:

  DataGridView1.Focus()

答案 1 :(得分:1)

我能够重现这个问题。我看到,如果您在某些条件下以编程方式为用户选择行后点击删除键,则行不会删除。我认为(“不确定”)因为它不知道你点击删除键的位置。如果您要执行以下操作,则会删除所选记录。

 Private Sub Form1_keypressed(sender As System.Object, e As System.EventArgs) Handles MyBase.KeyDown

    If Keys.E + Keys.Delete Then

        For Each rows As DataGridViewRow In DataGridView1.SelectedRows

            DataGridView1.Rows.Remove(rows)

        Next
    End If

End Sub