3

我无法通过 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 中搜索与我的日期字符串匹配的任何项目。谢谢!

4

1 回答 1

4

您可以使用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);
于 2013-07-31T15:36:01.363 回答