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 :

[c#][listbox]probleme afficher string et récupérer objet


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut [c#][listbox]probleme afficher string et récupérer objet
    Bonjour,
    Alors voila mon problème(je pense que c'est tout con mais je bloque sur ça ).
    J'ai trois objets: visite, projet, client.
    J'ai une listbox qui me sert à afficher une liste de projets.
    Un projet est affiché par la date de la visite ayant donné lieu à ce projet, le client chez qui a été effectuée cette visite, et le nom du projet.
    Je voudrais que, en cliquant sur une ligne de la listbox, je puisse récupérer l'instance de projet s'y rattachant.
    J'ai testé de cette manière (dans une autre listbox) pour l'affichage d'une visite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //chargement de la liste des visites du client sélectionné
    public void ChargerVisites(ArrayList visites)
    {
    int i;
     
    listbox1.Items.Clear();
    for(i=0;i<visites.Count;i++)
    {
    listBox1.Items.Add(((Visite)visites[i]));
    }
     
    //avec ToString()
    public override string ToString()
    {
    return m_Date.ToShortDateString()+" : "+m_Commentaires;
    }
    et je le récupère avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listBox1.SelectedItem
    Dans ce cas, je récupère bien l'instance de visite sélectionnée et l'affichage est fait par ToString().

    Mon problème vient du fait que là je récupère une string et non pas une instance de projet.
    Je ne sais pas si j'ai été assez clair mais si quelqu'un a des idées ou une manière de faire je suis preneur.
    merci.

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 182
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 182
    Par défaut
    Bonjour.

    Si tu as chargé le datasource avec des objets "projets", tu peux caster le selecteditem en objet "projet" sans soucis.

    Cdt.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    bonjour
    merci pour la réponse
    le truc c est que je ne charge pas le datasource
    je procede de cette maniere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //modifieur de la liste des projets a effectuer
    //pour chaque projet à afficher
            public void SetListeProjets(Visite visite, Client client, Projet projet)
            {
                string str = visite.GetRecontact().ToShortDateString() + " : " +    Client.ToString() + " : " + projet.ToString();
                listBox1.Items.Add(str);
            }
    Le problème vient du fait que les infos que j ai a afficher pour spécifier un projet sont contenues dans trois objets différents (comme vu dessus dans code).
    Je n ai pas vu de méthode permettant de charger plusieurs objets dans le même item de la listbox, et de plus la méthode ToString() de ma classe Visite n affiche pas les bonnes infos pour cette listbox la.
    Je pensais insérer un objet que je pourrais récupérer au clic et afficher la chaine désirée pour l item oû l objet est inséré.
    Ou alors creer une classe spéciale me permettant de recouper les trois objets et afficher mais si je dois faire joujou avec ça je n ai pas fini (le cas se retrouve plusieurs fois dans mon programme)
    merci encore pour l aide

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    je pense avoir trouvé une solution.
    je suis passé de la listview a la listbox (je me suis trompé dans le titre depuis le début)
    j ai donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    //modifieur de la liste des projets a effectuer sur la form
    //pour chaque projet à afficher
            public void SetListeProjets(Visite visite, Client client, Projet projet)
            {
                string str = visite.GetRecontact().ToShortDateString() + " : " +    Client.ToString() + " : " + projet.ToString();
                listBox1.Items.Add(str);
            }
     
    //méthode d appel du chargement des projets dans le contrôleur de la form
     
    public void ChargerProjets(DateTime dt, DateTime dt1)
            {
                int i;
                int j;
                ArrayList alVisites;
                ArrayList alIDP;
                ArrayList alProjets;
                Client client;
     
                alVisites = new ArrayList();
                alIDP = new ArrayList();
                alProjets = new ArrayList();
                //chargement des visites correspondant a la période sélectionnée 
                alVisites = m_visites.ChargerVisites(dt, dt1);
                //remise a zero de la listbox
                ((ListBox)m_pnl.GetListBox()).Items.Clear();
                //remise a zéro de la liste contenant les projets affiches dans la listbox
                m_alProjetsListe.Clear();
                for (i = 0; i < alVisites.Count; i++)
                {
                    client = new Client();
                    client = m_clients.RecupClient((Visite)alVisites[i]);
                    //chargement des id des projets rattachés a la visite a effectuer
                    alIDP = m_dl.ChargerIDProjets((Visite)alVisites[i]);
                    alProjets = m_projets.ChargerProjets(alIDP);
                    for (j = 0; j < alProjets.Count; j++)
                    {
                        m_pnl.SetListeProjets((Visite)alVisites[i], client, (Projet)alProjets[j]);
                        m_alProjetsListe.Add((Projet)alProjets[j]);
                    }
                    alIDP.Clear();
                    alProjets.Clear();
                }
            }
    En fait j 'ajoute l instance de projet dans une arraylist a chaque projet ajouté dans la listbox
    au clic je récupère l index de la ligne sélectionnée dans la listbox et je fais une recherche de cet index dans l arraylist de projets
    je récupère le projet et je le balance dans une fonction qui va me permettre d afficher le reste des infos du projet sélectionné dans une autre fenêtre.
    voila que de mal et je ne suis pas satisfait de cette façon de faire
    merci de ton aide olsimare

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

Discussions similaires

  1. [String] passage d'objet par référence
    Par adilou1981 dans le forum Langage
    Réponses: 8
    Dernier message: 01/04/2005, 15h22
  2. [FLASH MX] Probleme avec le drag d'objet
    Par Toutouffe dans le forum Flash
    Réponses: 3
    Dernier message: 23/01/2005, 22h41
  3. Query-string sur l'objet history
    Par AlLutun dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2004, 09h20
  4. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39
  5. [jcombobox]l'élément affiché lié à un autre objet
    Par szdavid dans le forum Composants
    Réponses: 3
    Dernier message: 11/05/2004, 10h17

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