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

Windows Forms Discussion :

Comment remplir une listBox via une collection


Sujet :

Windows Forms

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Comment remplir une listBox via une collection
    Bonjour tout le monde,

    voila je réalise un programme en C# dans lequel j'utilise une collection.

    L'utilisateur clique sur un bouton "Afficher les comptes" et je souhaiterais que les comptes se rajoute dans ma listBox via la collection "ColComptes".

    Voici la déclaration de la collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    namespace GestionDesComptes
    {
        public partial class GestionCompte : Form
        {
    public static Collection<Compte> ColComptes = new Collection<Compte>();//creation d'une collection contenant les comptes
    ......}
    }
    Voici le code du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void BT_AfficherComptes_Click(object sender, EventArgs e)
            {
                listBox1.Text = "Liste des " + ColComptes.Count.ToString() + " comptes de la collection";
                foreach (Compte UnCompte in ColComptes)
                {
                    ColComptes.Add(listBox1.Text);
                }
            }
    Voici le message d'erreur que j'obtient :
    Erreur 1 La méthode surchargée correspondant le mieux à 'System.Collections.ObjectModel.Collection<GestionDesComptes.Compte>.Add(GestionDesComptes.Compte)' possède des arguments non valides C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2005\Projects\GestionDesComptes\GestionDesComptes\GestionCompte.cs 26 17 GestionDesComptes


    Erreur 2 Argument '1'*: impossible de convertir de 'string' en 'GestionDesComptes.Compte' C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2005\Projects\GestionDesComptes\GestionDesComptes\GestionCompte.cs 26 32 GestionDesComptes
    J'aimerais savoir comment régler mes problèmes??
    Comment vous remplirez votre listBox avec une collection??

    Cordialement!!

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    L'erreur viens de ton Add.
    Si j'ai bien compris en cliquant sur le bouton tu ajoute dans ta listbox les elements de ta collection.
    Or toi tu fait l'inverse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (Compte UnCompte in ColComptes)
                {
                    ColComptes.Add(listBox1.Text);
                }
    Je pense que si tu fait comme ceci ça devrait être mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (Compte UnCompte in ColComptes)
                {
                    listBox1.Items.Add(UnCompte);
                }
    Je suis plus très sur de la syntaxe d'ajout dans une liste box mais ça doit être quelque chose dans ce style

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Med86
    Merci pour ta réponse.
    Cela fonctionne mais j'ai un problème.

    Voici mon nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private void BT_AfficherComptes_Click(object sender, EventArgs e)
            {
                listBox1.Text = "Liste des " + ColComptes.Count.ToString() + " comptes de la collection";
                foreach (Compte UnCompte in ColComptes)
                {
                    listBox1.Text = ("Nom du propriétaire :" + listBox1.Items.Add(UnCompte.getNom()) + "  Crédit : " + listBox1.Items.Add(UnCompte.getCredit()));
                }
            }
    voici le résultat de mon programme :
    vi
    200
    der
    320
    Je comprend pas pourquoi il m'affiche pas "Nom du propriétaire :" et "Crédit:"??
    Pourquoi il me les met pas à la suite(le nom et le crédit pour le même propriétaire sur la même ligne)

    Cordialement!!

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Regarde du coté de l'attribut Multicolumn de ta listbox.
    En le mettant a true ça devrait être mieux

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Med86
    J'ai fais ske tu ma dit :
    Regarde du coté de l'attribut Multicolumn de ta listbox.
    En le mettant a true ça devrait être mieux
    mais c'est toujours pareils!!

    Dans le code, je dois faire quelque chose??

    Cordialement!!

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Med86
    Merci Guuhl pour ta réponse.

    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (Compte UnCompte in ColComptes)
                {
                    ColComptes.Add(listBox1.Text);
                }
    est déja réglé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void BT_AfficherComptes_Click(object sender, EventArgs e)
            {
                listBox1.Text = "Liste des " + ColComptes.Count.ToString() + " comptes de la collection";
                foreach (Compte UnCompte in ColComptes)
                {
                    listBox1.Text = ("Nom du propriétaire :" + listBox1.Items.Add(UnCompte.getNom()) + "  Crédit : " + listBox1.Items.Add(UnCompte.getCredit()));
                }
            }
    Maintenant j'ai un problème de mise en page c'est à dire que je souhaiterais : pour chaque propriétaire, afficher le nom et le crédit sur la même ligne mais ça me met cela dans une ligne différente, pourquoi??
    Puis, il m'affiche juste les résultat et non les données entre guillemet dans mon code (voir écriture en rouge)

    Cordialement!!

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    Merci Guuhl pour ta réponse.

    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (Compte UnCompte in ColComptes)
                {
                    ColComptes.Add(listBox1.Text);
                }
    est déja réglé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void BT_AfficherComptes_Click(object sender, EventArgs e)
            {
                listBox1.Text = "Liste des " + ColComptes.Count.ToString() + " comptes de la collection";
                foreach (Compte UnCompte in ColComptes)
                {
                    listBox1.Text = ("Nom du propriétaire :" + listBox1.Items.Add(UnCompte.getNom()) + "  Crédit : " + listBox1.Items.Add(UnCompte.getCredit()));
                }
            }
    Maintenant j'ai un problème de mise en page c'est à dire que je souhaiterais : pour chaque propriétaire, afficher le nom et le crédit sur la même ligne mais ça me met cela dans une ligne différente, pourquoi??
    Puis, il m'affiche juste les résultat et non les données entre guillemet dans mon code (voir écriture en rouge)

    Cordialement!!

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (Compte UnCompte in ColComptes)
                {
                    listBox1.Items.Add(UnCompte.Nom + " " + UnCompte.Somme);
                }
    Vois comme ça chez moi ça passe. Tu peux rajouter le texte que tu veux je pense étant donnée que l'espace entre nom et somme est pris en compte.
    Par contre le Multicolumn n'est pas nécessaire donc remet le a false pour avoir une présentation correct

    Pense au tag Résolu

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Med86
    Merci pour ta réponse, cela fonctionne.

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

Discussions similaires

  1. [XL-2010] Comment tranférer une valeur d'une listbox (userform) à une cellule de worksheet?
    Par Guy7090 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2014, 14h29
  2. Comment remplir la résultat d'une requête dans une table
    Par likoo_01 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/04/2012, 17h43
  3. [Débutant] Remplissage d'une listbox via une requete SQL
    Par arngrimur dans le forum ASP.NET
    Réponses: 9
    Dernier message: 26/09/2011, 11h31
  4. comment charger une listbox via une requete access
    Par sanfour_walhan dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/12/2006, 07h44
  5. Réponses: 16
    Dernier message: 20/03/2006, 23h21

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