Datagridview列搜索

时间:2014-02-18 12:09:29

标签: vb.net search datagridview

我有一个代码,可以让我搜索每一行的特定文本。但是我想修改它以便能够在当前选定的列中搜索特定文本?

我正在尝试使用的代码如下:

Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
                                                           Handles Button2.Click
  Dim rowindex As String
  For Each row As DataGridViewRow In DataGridView1.Rows
    If row.Cells.Item("Column1").Value = TextBox2.Text Then
      rowindex = row.Index.ToString()
      MsgBox(rowindex)
    Else
      MsgBox("No Record found")
    End If
  Next
End Sub

3 个答案:

答案 0 :(得分:0)

查找列而不是使用DataGridView.CurrentCell属性查看Column1:

代码:

Dim currentcolumn As DataGridViewColumn =
  DataGridView1.Columns(DataGridView1.CurrentCell.ColumnIndex)
For Each row As DataGridViewRow In DataGridView1.Rows
  If row.Cells.Item(currentcolumn.Name).Value = TextBox2.Text Then

  End If
Next

答案 1 :(得分:0)

您需要使用datagrid的SelectionChanged事件。参数将指向所选的行,然后您可以遍历该行中的单元格并比较值以查看所选行中是否存在匹配项。

如果您有一个允许选择多行的花式网格,则需要遍历每个选定行和这些行中的每个单元格。

答案 2 :(得分:0)

如果您只想在选定的单元格中搜索,请使用DataGridView.SelectedCells属性。

For Each cell As DataGridViewCell In datagridview1.SelectedCells
    If cell.Value.ToString() = TextBox2.Text Then

    End If
Next

我的VB生锈了,只需在调用cell.Value之前为ToString()添加空检查。