尝试在ListView中搜索匹配字符串的子项

我无法扫描ListView以找到与给定字符串匹配的子项。 这是我的代码:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { string date = datePicker.Value.ToShortDateString(); int count = Program.booker.listView.Items.Count; for (int i = 0; i < count; i++) { ListViewItem lvi = Program.booker.listView.Items[i]; if (lvi.SubItems.Equals(date)) { MessageBox.Show("Found!", "Alert"); Program.booker.listView.MultiSelect = true; Program.booker.listView.Items[i].Selected = true; } else { MessageBox.Show("Nothing found for " + date, "Alert"); } } } 

ListView位于Booker表单上,我正在从Filter类访问它。 我想在整个ListView中搜索与我的日期字符串匹配的任何项目。 谢谢!

您可以使用FindItemWithText方法。

 ListViewItem searchItem = null; int index = 0; do { if (index < Program.booker.listView.Items.Count) { //true = search subitems //last false param = no partial matches (remove if you want partial matches) searchItem = Program.booker.listView.FindItemWithText(date, true, index, false); if (searchItem != null) { index = searchItem.Index + 1; //rest of code } } else searchItem =null; } while (searchItem != null);