如何在DataGridView的第一列中搜索Value并选择值为Value的行? - 很像SQL中的WHERE子句。
我一直在寻找线程中的答案,但我似乎无法找到答案。
DataGridView1
是DataGridView,My.Settings.CurrentUserID
是我想要搜索的值。
任何帮助将不胜感激。
请注意;表中只能出现一次Value,因此不需要多次返回/匹配。
{编辑1}
史蒂夫解决方案似乎只突出显示行,而不是实际选择它,因为黑色箭头不会移动到它上面。代码寻找的值是4
,注意它是如何找到它并突出显示它,但箭头不会移动。
代码执行此操作:
我需要它来执行此操作:
答案 0 :(得分:0)
假设您要搜索的列是第一个
For Each row in DataGridView1.Rows
If Convert.ToInt32(row.Cells(0).Value) = My.Settings.CurrentUserID Then
row.Selected = True
Exit For
End If
Next
编辑:
要指示“当前”行,请设置datagridview的CurrentCell属性。
.....
DataGridView1.CurrentCell = row.Cells(0)
Exit For
来自MSDN:
当您将单元格设置为当前单元格时,它将滚动到视图中 目前尚未显示。当前单元格不能是标题 单元格,已禁用的单元格或隐藏的行或列中的单元格。
答案 1 :(得分:0)
将此放入点击事件或其他任何内容......
Dim intIndex As Integer = FindUser(txtSearchString.Text, txtColumn.Text)
dgvMembers.CurrentCell = dgvMembers.Rows(intIndex).Cells(0) 'This ensures that the arrow will move
把它放在你的班级或任何地方......
Private Function FindUser(ByVal strUserID As String, ByVal intColumn As Integer) As Integer
Dim intIndex As Integer = 0
For i As Integer = 0 To dgvMembers.Rows.Count - 1
If dgvMembers.Rows(i).Cells(intColumn).Value.ToString = strUserID Then
intIndex = i
Exit For
End If
Next
Return intIndex
End Function