vb.net - 从 vb.net 中的数据 GridView 中查找文本

标签 vb.net winforms datagridview

我在一个名为“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/

相关文章:

c# - 如何在 winform c# 中禁用按钮时将焦点设置在按钮上?

c#-4.0 - 如何将数据 Gridview 两列相乘并在另一列中显示结果

vb.net - 创建一个字符串并将文本附加到它

asp.net - 在客户端单击时重新加载 Gridview

c# - Do/While 和 While/Do 之间的区别

c# - Windows 窗体 Tabpage 加载缓慢

c# - 在 DataGridView 中拖放多列

vb.net - 以编程方式根据 gridview 值选择一行

javascript - 连接下拉列表以在 Controller 中运行功能

vb.net - 将数字与方程式/算法联系起来