You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中ListView筛选问题求助:仅显示匹配搜索记录

VB.NET ListView 筛选显示匹配记录解决方案

你的代码当前仅实现了高亮选中匹配项的功能,要实现隐藏非匹配项、只显示符合条件记录的效果,只需修改逻辑为控制 ListViewItem 的 Visible 属性即可,以下是调整后的完整代码:

Private Sub btnfind_Click(sender As Object, e As EventArgs) Handles btnfind.Click
    Dim searchRecord As String = txtsearch.Text.Trim()
    lvRoom.SelectedIndices.Clear()

    ' 搜索框为空时,显示所有记录
    If String.IsNullOrEmpty(searchRecord) Then
        For Each lvr As ListViewItem In lvRoom.Items
            lvr.Visible = True
        Next
        lvRoom.Focus()
        Return
    End If

    For Each lvr As ListViewItem In lvRoom.Items
        ' 默认隐藏当前项
        lvr.Visible = False
        ' 遍历子项查找匹配内容
        For Each lvrsub As ListViewItem.ListViewSubItem In lvr.SubItems
            ' 支持不区分大小写匹配,如需严格匹配可去掉 StringComparison 参数
            If lvrsub.Text.Equals(searchRecord, StringComparison.OrdinalIgnoreCase) Then
                lvr.Visible = True
                lvRoom.SelectedIndices.Add(lvr.Index) ' 可选:同时高亮选中匹配项
                Exit For ' 找到匹配后跳出子项循环,提升效率
            End If
        Next
    Next
    lvRoom.Focus()
End Sub

关键修改说明

  • 新增搜索文本为空的处理:清空搜索框时自动恢复显示所有记录
  • 将原有的选中逻辑替换为Visible属性控制:默认隐藏所有项,找到匹配项后再设置为可见
  • 加入不区分大小写匹配的选项(可根据需求移除StringComparison.OrdinalIgnoreCase改为严格匹配)
  • 保留了选中匹配项的逻辑(可选,不需要的话可删除对应代码行)

内容的提问来源于stack exchange,提问作者Emmanuel Tandema

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:35:18