IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment lire une multisélection de listBox ?


Sujet :

VB.NET

  1. #1
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Comment lire une multisélection de listBox ?
    Bonjour,

    Comment lire une multisélection de listBox ?

    J'ai un peu essayé plein de combinaisons, mais ça ne donne rien, en fait je cherche à lire quels sont les items éventuellement sélectionnés dans une listbox multisélection, exemple (qui est accepté mais plante a l'exécution) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For i = 0 To ListBox2.Items.Count - 1
      If ListBox2.Items(i).SelectedIndex = True Then
        ListBox1.Items.Add(ListBox2.Items(i))
      End If
    Next i
     
    ListBox2.Items(i) is SelectedIndex = True
    ListBox2.Items(i) is SelectedIndex
    ListBox2.Items(i) = SelectedIndex
    ListBox2.Items.SelectedIndex(i) = True
    En VB6 c'est :
    Mais c'est à mon avis pas assez tortueux pour vbNet

    Ben... merci à celui qui aura la clef du mystère ?
    .

  2. #2
    Membre éclairé Avatar de Chapeau_Bas
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut
    Yo!

    Essaye sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox2.GetItemChecked(i) = True

  3. #3
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Chapeau_Bas Voir le message
    Yo!

    Essaye sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox2.GetItemChecked(i) = True
    Bonjour,
    Merci... mais... perdu !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      For i = 0 To ListBox2.Items.Count - 1
            If ListBox2.GetItemChecked(i) = True Then
              ListBox1.Items.Add(ListBox2.Items(i))
            End If
          Next i
    Il n'en veut pas, il me dit que Get... n'est pas un membre de Listbox...

  4. #4
    Membre éclairé Avatar de Chapeau_Bas
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut
    Ah oui, en effet, je me suis trompé. Toutes mes excuses.

    Ce code fonctionne pour un composant "CheckedListBox", et non un "Listbox".
    Pour la multi-sélection je préfère ce composant qui permet de visualiser simplement les éléments sélectionnés.

    Je vais voir si je trouve dans le cas d'un Listbox.

    Je réédite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ListBox2.GetSelected(i) = true then
    [...]
    End If
    Est-ce mieux?

  5. #5
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Chapeau_Bas Voir le message
    Ah oui, en effet, je me suis trompé. Toutes mes excuses.

    Ce code fonctionne pour un composant "CheckedListBox", et non un "Listbox".
    Pour la multi-sélection je préfère ce composant qui permet de visualiser simplement les éléments sélectionnés.

    Je vais voir si je trouve dans le cas d'un Listbox.

    Suite,

    Ah misère, un vrai cirque ce vbNet, j'ai encore fait quelques essais infructueux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If ListBox2.SelectedItems(i) Then 
    If ListBox2.SelectedIndices(i) = True Then
    If ListBox2.GetItemChecked(i) = True Then
    Parfois il me dit (car il parles), que ce n'est pas du boolean mais du texte, je n'y comprends rien à ce machin, je cherche si une sélection est réalisée oui/non c'est bien du boolean...

    En plus le nombre de combinaisons avecs items ou pas, avec select quelque chose et avec true ou pas, ça fait de dizains de dizaines de combinaisons, en tirant au sort on a autant de chance...

    Bref...

  6. #6
    Membre éclairé Avatar de Chapeau_Bas
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut
    Ah mince, j'ai réédité pour rien au dessus...

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If  ListBox2.GetSelected(i) = true then
    [...]
    End if
    Est-ce mieux?

  7. #7
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Chapeau_Bas Voir le message
    Ah mince, j'ai réédité pour rien au dessus...

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If  ListBox2.GetSelected(i) = true then
    [...]
    End if
    Est-ce mieux?
    Suite (ter)...

    Ah, "chat marche" comme disent les chats, tu es un génie génial, fallait trouver... ou savoir, ça serait à mettr en FAQ ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 0 To ListBox2.Items.Count - 1
      If ListBox2.GetSelected(i) = True Then MsgBox(i & VbLf & "sélectionné")
    Next i
    Merci encore

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Par défaut
    Salut,

    Et pourquoi pas ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each i As Integer In Me.ListBox1.SelectedIndices
          MsgBox(i & vbLf & "sélectionné")
    Next
    Ca marche aussi avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Item As Object In Me.ListBox1.SelectedItem
            '...
    Next

  9. #9
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Tous les chemins mènent à Rome...
    Bonjour

    Comme quoi tous les chemins mènent à Rome...

    Solution la plus VB6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 0 To ListBox2.Items.Count - 1
      If  ListBox2.GetSelected(i) = true then ListBox2.Items.Add(ListBox1.SelectedItems(i))
    Next i


    Solution la plus VB NET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i As Integer = 0 To ListBox1.SelectedItems.Count - 1
      ListBox2.Items.Add(ListBox1.SelectedItems(i))
    Next


    Solution la plus VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 0 To ListBox2.Items.Count - 1
      If ListBox2.GetSelected(i) = True Then MsgBox(i & VbLf & "sélectionné")
    Next i
    Si quelqu'un y a accès, ce serait bien de mettre ça en F.A.Q car point je ne l'ai trouvé, ce qui aurait semblé être le minimum...

    Je préfère la solution VB, la plus logique par rapport à l'ancien code, on a déjà dans la liste une collection d'items, les parcourir directement me semble assez cartésien et conservateur du principe...

    Merci à tous

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    La plus propre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listBox2.Items.AddRange(listBox1.SelectedItems.Cast(Of Object)().ToArray())
    Mais bon, c'est dans la doc du ListBox, pas sur que ca mérite une entrée de FAQ

  11. #11
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    La plus propre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listBox2.Items.AddRange(listBox1.SelectedItems.Cast(Of Object)().ToArray())
    Mais bon, c'est dans la doc du ListBox, pas sur que ca mérite une entrée de FAQ
    Bonjour,

    La plus mystique tu veux dire, la plus "C"

    Recomposition de l'INVOLUTION :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List1.Selected(i)
    listBox2.Items.AddRange(listBox1.SelectedItems.Cast(Of Object)().ToArray())
    Hum...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2006, 08h33
  2. [VB.Net] Comment lire une url depuis un fichier .ini ?
    Par lewebdalex dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/05/2006, 20h32
  3. [SQLBase Server 7.5.1]Comment lire une BDD de ce type?
    Par Niouts dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 06/04/2006, 19h53
  4. Comment Lire une valeur à partir d'un fichier XML en C++?
    Par Hamdi Hedhili dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/12/2005, 10h09
  5. Comment lire une partie du son *.wav
    Par ryosaebafr2000 dans le forum MFC
    Réponses: 5
    Dernier message: 08/06/2005, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo