【问题标题】:Data grid view colomns searchDatagridview 列搜索
【发布时间】:2014-02-18 12:09:29
【问题描述】:
我有一个代码,可以让我在每一行中搜索特定文本。但是我想修改它以便能够在当前选定的列中搜索特定文本?
我正在尝试使用的代码如下:
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
【问题讨论】:
标签:
vb.net
search
datagridview
【解决方案1】:
您将需要使用数据网格的 SelectionChanged 事件。参数将指向所选行,然后您可以遍历该行中的单元格并比较值以查看所选行中是否有匹配项。
如果您有一个允许选择多行的精美网格,您将需要遍历每个选定的行和这些行中的每个单元格。
【解决方案2】:
如果您只想在选定的单元格中搜索,请使用DataGridView.SelectedCells 属性。
For Each cell As DataGridViewCell In datagridview1.SelectedCells
If cell.Value.ToString() = TextBox2.Text Then
End If
Next
我的 VB 生锈了,只需在调用 ToString() 之前为 cell.Value 添加一个空检查。
【解决方案3】:
使用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