嗨,我在虚拟模式下有一个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键单击不属于选择组的另一行,我可以删除所有选定的行。这种控制点击火是否有一种更新,让网格知道选择了哪些行?我该如何解决这个问题?
答案 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