我在一个名为“GridViewForm”的窗口窗体中有一个数据 GridView 。当用户从另一个名为“FindForm”的窗口窗体的搜索框中搜索文本时,我想在数据 GridView 中突出显示所有匹配结果。搜索类型可以是精确的或部分的。
例如。
如果用户搜索文本“stack”,则应突出显示 [Stack, stack-over, stacks, stack exchange] 中的单词“stack”,并应选择与查询匹配的第一个单元格。当用户按下下一步按钮时,应选择与搜索查询匹配的另一个单元格。
我查找文本的代码如下所示,因为它只搜索确切的词。
Dim gridRow As Integer = 0
Dim gridColumn As Integer = 0
For Each Row As DataGridViewRow In AccountsDataGridView.Rows
For Each column As DataGridViewColumn In AccountsDataGridView.Columns
If TryCastString(AccountsDataGridView.Rows(gridRow).Cells(gridColumn).Value).ToLower = SearchTextBox.Text.ToLower Then
'AccountsDataGridView.Rows(intcount).Cells(0).Value = "0"
MsgBox("FOUND") 'Should be highlight insted of showing message and the cell should be select.
End If
gridColumn += 1
Next column
gridColumn = 0
gridRow += 1
Next Row
有什么方法可以实现我的想法吗?我正在使用 vb.net 窗口窗体。提前致谢。
最佳答案
您可以使用 String.contains 代替 =。
这是关于 contains 方法的 MSDN 文章:
http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx
如果单元格包含搜索文本,则设置单元格样式的代码:
Dim someText As String = SearchTextBox.Text
Dim gridRow As Integer = 0
Dim gridColumn As Integer = 0
For Each Row As DataGridViewRow In AccountsDataGridView.Rows
For Each column As DataGridViewColumn In AccountsDataGridView.Columns
Dim cell As DataGridViewCell = (AccountsDataGridView.Rows(gridRow).Cells(gridColumn))
If cell.Value.ToString.ToLower.Contains(someText.ToLower) Then
cell.Style.BackColor = Color.Yellow
End If
gridColumn += 1
Next column
gridColumn = 0
gridRow += 1
Next Row
关于vb.net - 从 vb.net 中的数据 GridView 中查找文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7976739/