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 :

trier un listbox [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut trier un listbox
    bonjour à tous et toutes

    tout d'abord je voudrais vous remerciez pour la qualité de votre site que je consulte souvent surtout quand je suis bloqué lors de mes essais de programmation avec VB.
    je débute avec mon premier programme aprés une petite formation en VB(application windows form)
    j'ai actuellement un soucis , j'ai fais des recherches un peu partout mais je n'avance pas.

    voila mon problème

    j'ai un un petit programme de calcul pour les candidats d'un concours animalier qui fonctionne comme suit:

    on entre les notes de chaque animal puis un bouton fait l'addition et affiche le résultat dans dans listbox qui sera du genre

    x : 86,789
    m : 87,236
    o : 85,656
    z : 86,546
    etc..

    ce que je voudrais c'est créer un bouton "classement" qui lorsqu'on appui dessus classe les candidat selon la note obtenue comme suit:

    m : 87,236
    x : 86,789
    z : 86,546
    o : 85,656


    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Puisque vous ne fournissez pas de code, il est difficile de déterminer où intervenir.

    En me basant sur le fait que vous employez certains mots et pas d'autres pour décrire votre problème, je suppose que vous insérez des éléments dans votre ListBox en utilisant Items.Add.
    Il y a également de fortes chances que l'élément que vous insérez soit une concaténation du nom de l'animal et de sa note.
    Bref, un enfer à trier.

    Au lieu de cela, je vous suggère de passer par la propriété DataSource de la ListBox.
    1. Créer une classe comportant une propriété pour le nom de l'animal et une propriété pour sa note.
    2. Redéfinir la méthode ToString() de cette classe pour faire la concaténation du nom et de la note (pour que ce soit ça qui s'affiche).
    3. Créer une liste (List<T> où T est votre classe)
    4. A chaque nouvelle note, créer un objet du type de votre classe et l'ajouter à la liste.
    5. Trier la liste avec la méthode Sort.
    6. Affecter cette liste triée en tant que DataSource à la ListBox

    Ceci devrait vous aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.DataSource = new BindingList<MyClass>(unsortedListInstance.OrderBy(it => it.Note).ToList());

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut
    Merci de la réponse j'ai réglé le problème au lieu de la listbox j ai mis une listview avec des colonnes avec en premier la note de l'animal et j'ai mis
    "sorting" sur "descending" ainsi le tri se fait automatiquement selon les ajouts.(enfin)
    mon nouveau problème est faire en sorte en cliquant sur bouton ouvrir un savefiledialog afin de pouvoir enregistré tout le contenu de la listview dans un fichier txt
    je precise que j'ai un listview avec quatre colonnes

    Merci

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Bonjour,

    Vous n'avez pas réglé votre problème, vous l'avez contourné.
    Et de manière irréfléchie, ce qui fait que vous vous retrouvez avec d'autres problèmes que vous n'auriez pas eu en suivant la méthode que je vous ai donné.

    Avec une liste qui sert de DataSource, vous avez tout ce qu'il faut pour faire du tri, ou de la sérialisation.
    Avec cette liste qui vous sert de DataSource, vous pouvez vous bénéficier d'automatisme d'affichage sur un grande partie des composant gérant des enregistrements (mais pas sur la ListView qui n'est pas faite pour ça).

    Au pire si vous voulez une présentation en colonne, utilisez une DataGridView (qui a une propriété DataSource comme la ListBox).

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut
    bonjour

    C’était urgent pour moi donc il fallait une solution sur le moment, mais j'exploiterais votre solution prochainement. Merci encore

    j'ai aussi trouvé la solution pour l'enregistrement en fichier texte de la listview( la présentation en colonne n'est pas nécessaire)

    sujet résolu

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

Discussions similaires

  1. Trier une Listbox à partir d'une Textbox
    Par Aquarium dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2010, 14h15
  2. Trier une ListBox en clickant sur un élément ComboCox
    Par Eadriel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2010, 11h23
  3. [A-07] Trier une listbox dans l'ordre d'un treeview
    Par Tutures dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/01/2009, 09h21
  4. Trier une listbox
    Par zoidy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2008, 09h16
  5. Réponses: 8
    Dernier message: 01/12/2005, 11h40

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