Я пытаюсь создать окно поиска для своего listview, но оно работает неправильно
The code only works once when you start
Что я уже пробовал:
private void textBox1_TextChanged(object sender, EventArgs e) { for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].SubItems[0].Text.Contains(textBox1.Text) || listView1.Items[i].SubItems[1].Text.Contains(textBox1.Text) || listView1.Items[i].SubItems[2].Text.Contains(textBox1.Text)) { productList.Add(listView1.Items[i]); } } if ( !(string.IsNullOrWhiteSpace(textBox1.Text)) ) { foreach (ListViewItem item in listView1.Items) { if (productList.Find(x => x == item) == null) { listremovedProducts.Add(item); listView1.Items.Remove(item); } } } else { try { foreach (var item in listremovedProducts) { listView1.Items.Add(item); } } catch (Exception) { }; } } }
j snooze
Вы вообще пытались установить точку останова и отладить код? возможно, это прольет свет на вашу проблему.
Tural_m
Да, я так и делал, каждый раз заходил в петлю, но не находил ее .. но когда вы только начинаете все работает нормально
CHill60
это вызывается для каждого символа, который вы вводите в textBox1 - попробуйте использовать другое событие ... ищите те, которые содержат "действительные"
Tural_m
Хорошо, я попробую
Ammar Shaukat
Это не так уж сложно . Сначала вы должны провести некоторое время с бумагой и карандашом, чтобы сделать хорошую логику для вашей задачи. Как только вы закончите с этим, тогда переходите к коду и отладке, если вы не получите правильный вывод.
Tural_m
Спасибо, ребята, решил я