具有"like"搜索键 VB.NET 的"流布局"面板中的搜索控件



我有一个flowlayoutpanel列出专辑的标题。假设flowlayoutpanel有很多歌曲,我想找到一个特别的一个。比方说,我想要艾德·希兰的歌曲《Thinking Out loud》。所以我会在搜索框中输入"Thinking"这个词,甚至没有完成"Out Loud"这个词,我想过滤flowlayoutpanel,显示标题为"Thinking Out Loud"的控件,并隐藏所有没有"Thinking"这个词的控件。这就像一个SQL搜索like查询。但我不想用SQL。它是可能与FLOWLAYOUTPANEL和搜索文本框?

您可以使用搜索文本框的TextChanged事件来触发对FlowLayoutPanel控件集合的处理,根据VB Like Operator比较的结果设置每个控件的Visible属性。

Private Sub tbSearch_TextChanged(sender As Object, e As EventArgs) Handles tbSearch.TextChanged
    If tbSearch.Text.Length > 0 Then
        Dim compareTo As String = String.Concat("*", tbSearch.Text.ToLowerInvariant, "*")
        For Each c As Control In FlowLayoutPanel1.Controls
            c.Visible = (c.Text.ToLowerInvariant Like compareTo)
        Next
    Else
        For Each c As Control In FlowLayoutPanel1.Controls
            c.Visible = True
        Next
    End If
End Sub

最新更新