Salve a tutti, Sto facendo la ricerca in una listView, solo che quando cerco un nome, e ne trovo due uguali mi rimangono tutti e due in selezione. E se provo a selezionarne uno mi rimangono sempre tutti e due selezionati. Come posso risolvere? Grazie in anticipo
Ecco il codice:
private void TCerca_TextChanged(object sender, EventArgs e)
{
if (TCerca.Text != "")
{
for (int i = ListView1.Items.Count - 1; i >= 0; i--)
{
var item = ListView1.Items[i];
var subitem = ListView1.Items[i].SubItems[1];
var subitem1 = ListView1.Items[i].SubItems[6];
var subitem2 = ListView1.Items[i].SubItems[7];
var subitem3 = ListView1.Items[i].SubItems[8];
var subitem4 = ListView1.Items[i].SubItems[9];
var subitem5 = ListView1.Items[i].SubItems[12];
var subitem6 = ListView1.Items[i].SubItems[13];
if (item.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem1.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem2.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem3.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem4.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem5.Text.ToLower().Contains(TCerca.Text.ToLower()) || subitem6.Text.ToLower().Contains(TCerca.Text.ToLower()))
{
item.BackColor = SystemColors.Highlight;
item.ForeColor = SystemColors.HighlightText;
subitem.BackColor = SystemColors.Highlight;
subitem.ForeColor = SystemColors.HighlightText;
subitem1.BackColor = SystemColors.Highlight;
subitem1.ForeColor = SystemColors.HighlightText;
subitem2.BackColor = SystemColors.Highlight;
subitem2.ForeColor = SystemColors.HighlightText;
subitem3.BackColor = SystemColors.Highlight;
subitem3.ForeColor = SystemColors.HighlightText;
subitem4.BackColor = SystemColors.Highlight;
subitem4.ForeColor = SystemColors.HighlightText;
subitem5.BackColor = SystemColors.Highlight;
subitem5.ForeColor = SystemColors.HighlightText;
subitem6.BackColor = SystemColors.Highlight;
subitem6.ForeColor = SystemColors.HighlightText;
}
else
{
ListView1.Items.Remove(item);
}
}
if (ListView1.SelectedItems.Count == 1)
{
ListView1.Focus();
}
}
if (TCerca.TextLength == 0)
{
ListView1.Items.Clear();
CaricaElencoGenitori();
//ListView1.Refresh();
}
}