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 :

Copie items sélectionnés listbox sans doublon


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Collégien
    Inscrit en
    Juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2012
    Messages : 27
    Par défaut Copie items sélectionnés listbox sans doublon
    Bonjour,

    je viens posté mon problème en espérant recevoir de l'aide.

    donc je voudrais savoir comment faire pour copier les éléments sélectionnés dans une listbox 1 dans une autre listebox2 mais si l'élément est déjà dans la listbox2 (pour ne pas le mettre deux fois) de ne pas le mettre.

    donc un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            For i As Integer = 0 To listbox1.Items.Count - 1
                If listbox1.Items(i).ToString.ToUpper.Contains(ListBox2.Text.ToUpper) Then
                    ListBox2.Items.Add(listbox1.Items(i).ToString)
                End If
            Next
    Il sélectionne tous les éléments et les mets dans ma listbox2 mais il les remets à chaque fois c'est à dire que même si les items y sont déjà il les doubles, triples...

    Merci de votre réponsse.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    En commençant par faire un petit algo, il est facile ensuite de le traduire en VB.
    .Pour chaque élémentL1 sélectionné dans la liste1
    . .trouvé = faux
    . .pour chaque élémentL2 dans la liste2
    . . .si élément1=élément2 alors
    . . . .trouvé=vrai
    . . .fin si
    . .fin boucle2
    . .si non trouvé alors ajouter élément1 dans liste2
    .fin boucle1
    "SelectedItems" te donne la collection des éléments sélectionnés dans une ListBox.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    Tu peux essayer comme ça (requêtes LINQ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            For Each listitem In (From item In ListBox1.SelectedItems Where
                                  (From item2 In ListBox2.Items Where _
                                   String.Equals(item, item2, StringComparison.OrdinalIgnoreCase)).Count = 0)
                ListBox2.Items.Add(listitem)
            Next

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Je te propose une autre version afin d'avoir différentes solutions à comparer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Dim Trouve As Boolean = False
            For i As Integer = 0 To ListBox1.SelectedItems.Count - 1
                Trouve = False
                For j As Integer = 0 To ListBox2.Items.Count - 1
                    If (ListBox1.SelectedItems(i) = ListBox2.Items(j)) Then
                        Trouve = True
                        Exit For
                    End If
                Next
                If Not Trouve Then ListBox2.Items.Add(ListBox1.SelectedItems(i))
            Next
    Comme tu peux le voir, le code de -N4w4k- avec Linq est plus concis et plus facile à lire.

    Bonne programmation
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre averti
    Femme Profil pro
    Collégien
    Inscrit en
    Juin 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2012
    Messages : 27
    Par défaut
    Bonjour et merci aux personnes qui ont répondus mais mon problème n'est pas résolue.
    J'utilise un Timer pour que mes processus se charge une fois lancé.
    Je voudrais en fait que tous les processus de ma listbox1 partent dans ma listbox2 sans rien enlevé donc je pense faire un My.Settings mais quand je teste vos codes, ça me ramène toujours au même point, dans l'image ci-dessous.
    Images attachées Images attachées  

Discussions similaires

  1. [MySQL] listbox sans doublon avec disabled
    Par akara dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/03/2009, 15h17
  2. listbox sans doublons
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2009, 22h14
  3. listbox sans doublons
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 22/10/2008, 18h13
  4. ListBox sans Doublons
    Par pobrouwers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/02/2007, 17h41
  5. [VB.NET] [ListBox / ComboBox] Label de l'item sélectionné?
    Par Giuseppe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/12/2005, 14h22

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