【发布时间】:2016-09-07 18:33:07
【问题描述】:
使用 Windows 窗体,我的“列表视图”有多个列,如图所示。
我一直试图让这个 txtbox_search 变得更高级。当插入任何字符、单词或数字时,我希望遍历列表视图的某些列以查找字符、单词、数字并显示与输入相关的数据。
就像我输入时一样:txtbox_search.Text = "a"
它应该遍历“名称”列并用数据填充 Listview:
名称以“a”开头的整行,例如“Anwar”
名称以“a”开头的整行,例如“Anas”
以“A...”开头的整行以此类推
当我输入时:txtbox_search.Text = "1"
它应该遍历“ID”列并用数据填充 Listview:
ID 以“1”开头的整行,例如“1002”
ID 以“1”开头的整行,例如“1112”
依此类推,整个行的 ID 以“1...”开头
到目前为止,我已经尝试了 2 天,最终得到了这么多:
private void textBox_DEC_Search_TextChanged(object sender, EventArgs e)
{
foreach(ListViewItem Items in listView_DEC_CustomerList.Items)
{
if(Items.Text == textBox_DEC_Search.Text)
{
listView_DEC_CustomerList.Items.Clear();
listView_DEC_CustomerList.Items.Add(Items);
}
}
if(textBox_DEC_Search.Text == "" || textBox_DEC_Search.Text == string.Empty)
{
CusList Cus = new CusList();
Cus.CustomersList(listView_DEC_CustomerList);
}
}
此代码仅遍历第一列并显示与插入的 ID 匹配的数据,仅当完整 ID 与 txtbox_search.Text 匹配时,我如何才能做到这一点? (我希望它在客户端,而不是来自 sql/database)。指南和示例代码帮助将不胜感激。谢谢。
【问题讨论】:
-
你基本上有两个条件:如果是在名称中搜索字母,如果是在 ID 中搜索数字,我是否正确?
-
我建议使用数据绑定的
DataGridView并使用List<T>或DataTable(即DataSource的DataGridView)执行过滤。无论如何,如果您想继续使用 ListView,请查看 Find ListView Items based on text of items and sub items 和 Filter a ListView in vb.net -
是的,你没看错,@MongZhu
-
阅读您提供的链接,@RezaAghaei。谢谢关心^_^
标签: c# winforms listview search