Trouver l'index d'une listbox

Résolu
jerlo11 Messages postés 109 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 17 novembre 2022 - 4 févr. 2019 à 22:25
Whismeril Messages postés 18609 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 septembre 2023 - 5 févr. 2019 à 12:05
Hello Hello,

Je me casse la tête à essayer de trouver l'index d'une listbox si elle contient un certain texte :(
exemple :

 For Each item As String In Me.ListBox2.Items
If item.Contains("toto1234") Then Txt_index_find.Text = numéro d'index dans la listbox2
Next


En sachant que toto1234 ou autre item sont unique, est-ce que cela est possible ?
Merci pour vos pistes éventuelles
A voir également:

4 réponses

jerlo11 Messages postés 109 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 17 novembre 2022
4 févr. 2019 à 22:48
je pense avoir trouvé la bonne synthaxe :

For Each lbItem As String In ListBox2.Items
If lbItem.Contains("toto1234") Then
ListBox2.SelectedItem = lbItem
Return
End If
Next
0
Whismeril Messages postés 18609 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 septembre 2023 629
4 févr. 2019 à 22:55
Ce code ne retourne pas l'index, ce qui est ta question initiale...
0
Whismeril Messages postés 18609 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 septembre 2023 629
4 févr. 2019 à 22:53
Bonjour


option 1:
VB.Net est un langage prévu pour la liaison de données (binding), où le contrôle ne sert que d'interface entre l'utilisateur et la source de données.
Donc la source de données est par exemple une List(Of String), elle est bindée sur la ListBox
maListBox.DataSource = maListe

Et plus loin, on pour trouver l'index d'un item
Dim index = maListe.IndexOf(item)


Mieux encore, on pourrait même se servir d'un BindingSource pour lier plusieurs contrôles à différentes propriétés d'une source de données, voir ici https://codes-sources.commentcamarche.net/source/100588-utilisation-du-binding-a-travers-l-objet-data-binding-source

option 2:
On préfère coder comme en VB6 ou VBA, il ne faut pas faire un foreach qui n'a aucune notion d'index mais un for
Dim index as Integer
For i = 0 to ListBox2.Items.Count -1
  If ListBox2.Items(i) = "toto1234" Then
        index = i
        break
   End if
Next


PS remarques tu que le code que les gens qui répondent (c'est pareil dans tes autres questions) est coloré, bien présenté, scrollable et avec des numéros de lignes. C'est parce que nous utilisons mieux les balises de code que toi. Voir ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code Il est possible à force de ne pas faire l'effort de présenter un code facile à lire, que l'on ne fasse plus l'effort de te répondre.
0
jerlo11 Messages postés 109 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 17 novembre 2022
5 févr. 2019 à 08:20
Merci pour toute ces précisions Wishmeril, désolé pour l'aspect des balises j'y ferai attention la prochaine fois. Je n'utilise pas de Binding source car j'essai de récupérer mes adresses IP listées dans ma listbox.

Dim index as Integer
For i = 0 to ListBox2.Items.Count -1
  If ListBox2.Items(i) = "toto1234" Then
        index = i
        break
   End if
Next
0
Whismeril Messages postés 18609 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 septembre 2023 629
5 févr. 2019 à 12:05
Je n'utilise pas de Binding source car j'essai de récupérer mes adresses IP listées dans ma listbox

Non, tu n’utilises pas le binding parce que tu ne sais pas ou ne veux pas. Lister des ip des carottes ou des éléphants n’a rien à voir là dedans.
0
Rejoignez-nous