For i As Integer = ListView1.Items.Count - 1 to 0 step -1
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
End If
Next
'initialisation de la collection de données et l'affichage dans la Listview personnes = New List(Of Personne)() personnes.Add(New Personne With {.Nom = "Durand", .Prenom = "Jean-Paul"}) personnes.Add(New Personne With {.Nom = "Jean", .Prenom = "Marcel"}) personnes.Add(New Personne With {.Nom = "Durant", .Prenom = "Jean-Claude"}) personnes.Add(New Personne With {.Nom = "Grandjean", .Prenom = "Edouard"}) personnes.Add(New Personne With {.Nom = "Dupond", .Prenom = "Jean-Paul"}) personnes.Add(New Personne With {.Nom = "Dupont", .Prenom = "Pierre-Jean"}) For Each p As Personne In personnes listView1.Items.Add(p.ToString()) Next p 'Dans un bouton (par exemple), je ne garde que ceux dont le nom de famille contient jean et ce quelque soit la casse Dim seulementLesJeans As List(Of Personne) = personnes.Where(Function(p) p.Nom.ToLower().Contains("jean")).ToList() listView1.Items.Clear() For Each p As Personne In seulementLesJeans listView1.Items.Add(p.ToString()) Next p 'la classe personne toute simple Class Personne Public Property Nom() As String get,set End Property Public Property Prenom() As String Public Overrides Function ToString() As String Return Prenom & " " & Nom End Function End Class
a = ListView1.Items.Count - 1
Dim a As Integer")
For i As Integer = 0 To a
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
End If
Next
Mais pour faire propre, il me semble t'avoir déjà dit de gérer tes données dans une collection (list(of), tableau, etc...),
Pour ton code, il est préférable d'utiliser une boucle Do.
Dim i As Integer = 0
Do While i <= ListView1.Items.Count - 1
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
End If
Loop
Dim i As Integer = 0
Do
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
End If
Loop Until i > ListView1.Items.Count - 1
Dim i As Integer = 0
Do While i <= ListView1.Items.Count - 1
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
' il manque quelque chose là
End If
Loop
Dim i As Integer = 0
Do
If Not ListView1.Items(i).Text.Contains(TextBox2.Text) Then
ListView1.Items.RemoveAt(i)
Else
' il manque quelque chose là
End If
Loop Until i > ListView1.Items.Count - 1
i = i + 1qu'il manque pour aller à la ligne suivante en modifiant le numéro de ligne . Par contre si tu supprimes la ligne i c'est la ligne i + 1 qui devient la nouvelle ligne i . Dans ce cas inutile de faire
i = i + 1
7 sept. 2016 à 21:43
j'avais déja pensé à aller a l'envers (par exemple de 10 à 0)
mais ça n'a pas marcher, car je n'ai pas mis
Merci encore je te suis reconnais pour ton aide
Merci à vb95 et Whismeril pour leurs aides