Ich habe ein ListView-Steuerelement, das ich Ergebnisse mit einer TextBox filtern. Der Code funktioniert, um die Backcolors der übereinstimmenden Ergebnisse hervorzuheben, aber ich möchte die gesamten gefundenen Ergebnisse/markierten Objekte als int
erhalten. Die int
, die jetzt ausgefüllt wird, ist falsch und nicht in Übereinstimmung mit den gefundenen/hervorgehobenen Ergebnissen.Gesamtindex von Listview kann nicht abgerufen werden
Wie kann ich die Gesamtzahl gefundener/hervorgehobener Ergebnisse ermitteln?
private void textBox1_TextChanged(object sender, EventArgs e)
{
foreach (ListViewItem lvi in this.browserlistview.Items)
{
if (textBox1.TextLength > 0)
{
if (lvi.Text.IndexOf(textBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0)
{
Color b = Color.Cyan;
lvi.BackColor = b;
foundobjlbl.Text = "Objects found: " + lvi.Text.IndexOf(textBox1.Text, StringComparison.InvariantCultureIgnoreCase).ToString();
//this is turning up incorrect integers
}
else
{
Color w = Color.White;
lvi.BackColor = w;
}
}
else if (textBox1.TextLength == 0)
{
Color w = Color.White;
lvi.BackColor = w;
foundobjlbl.Text = "Objects found : 0";
}
}
}
Kann jemand sehen, wo ich falsch liege?
Yup, Das hat es getan. Im Hinterkopf dachte ich daran, innerhalb der if-Anweisung zu erhöhen, aber ich hatte das Gefühl, dass das falsch sein würde. Danke für die Visualisierung und Erklärung :) – EyeSeeSharp