C#有没有一种方法可以用文本框搜索所有列表视图项目

本文关键字:搜索 文本 项目 视图 列表 有没有 方法 一种 | 更新日期: 2023-09-27 18:19:47

我开发了一个应用程序,它通过SQL CE连接填充Listview。我已经有了插入、更新和删除功能。只剩下搜索功能了。我认为这是最简单的部分,但我现在已经搜索了两天,还没有找到一个好的教程,所以我认为StackOverflow上的人可以帮助我。

我已经设法搜索了第一个项目(主项目,"PrincipalID"),我还想搜索子项目。我想要的就像

Principal ID    Email Address                     Subject                  Filename
193490          test@test.com                     Exec OUT (report)        q9193.xls
153130          test@test.com                     Standard mail Report     q7389.xls

我现在可以搜索主数字,但我也想搜索单词,例如,如果我在文本框中键入"test",我会得到电子邮件地址为"test@test.com"在顶部,或者更好的是,它只显示该记录并隐藏其余记录,然后如果文本框为空,它会再次显示所有记录。

所以基本上我想在整个列表视图中搜索在搜索文本框中键入的字符串。

希望有人能帮我

我会发自内心地感激它。

提前感谢!

C#有没有一种方法可以用文本框搜索所有列表视图项目

尝试使用此C#代码或类似代码来提取与字符串参数匹配的listview项。

    public void SearchInListView(ListView myListView, string searchThis) 
    {
            if (searchThis != "") 
            {
                foreach (ListViewItem lvItem in myListView.Items) 
                {
                    foreach (ListViewItem.ListViewSubItem lvSubItem in lvItem.SubItems) 
                    {
                        if (lvSubItem.Length >= 1) 
                        {
                            if (lvSubItem.ToLower().Contains(searchThis.ToLower())) 
                                //Mark this listview item in some way (e.g., change back color) or collect and return it
                            else 
                                //Mark this listview in a different way
                         }    
                    }
                 }
             }
    }

您可以使用TextBox的TextChanged事件,如果您在列表中搜索,则只能将您正在搜索的记录绑定到网格。

因此,您可以在列表中搜索specifik记录。

您必须启动两个查询。。。。如果输入Textbox1.Text.IsNumber,则按原则id搜索其他通过电子邮件搜索在查询中使用like也许它的工作