在c#中搜索多列列表视图中的项目

时间:2013-08-06 09:35:32

标签: c# listview search multiple-columns playlists

实际上我在C#中创建一个播放列表视图,Form包含一个ListView,分别有4列“Name”,“Album”,“Artist”和“Path”。我在表格中也有一个文本框。 我想知道如何搜索与用户的搜索查询匹配的项目,并从所有列中找到可能的匹配结果。例如,如果用户键入路径,那么如何从路径中获取匹配值,如果路径包含歌曲名称呢?实际上,如果您使用过播放列表中的任何播放器,如Windows Media Player,当我们输入搜索查询时,它会显示可能的结果。那么我该如何搜索所有4列的结果。我目前使用的代码只能搜索第1列,即“名称”列。

我可以用组合框替换文本框,用户可以在其中键入搜索查询,最多可添加15个结果并显示在其下拉列表中。当用户从保管箱中选择任何项目时,它应该返回路径,以及listview中该项目的索引。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是对上述解决方案的更新答案

  foreach (ListViewItem item in listView1.Items)
    {
        if (item.Text == "searchTerm")
        {
            // do something
        }

        foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
        {
            if (subItem.Text == "searchTerm")
            {
                // do something
            }
        }
    }