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

MFC Discussion :

[.Net]Récupérer la valeur d'une ligne sélectionnée dans une listview


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut [.Net]Récupérer la valeur d'une ligne sélectionnée dans une listview
    Bonjour à tous,

    Voilà mon problème est relativement simple mais pourtant pas moyen de mettre la main sur les bonnes méthodes (j'ai fait un tour sur msdn2 mais je n'ai pas trouvé ce que je cherchais =/ )

    Je cherche donc le moyen de récupérer le numéro de ligne et valeur(s) de la ligne sélectionnée d'une listview.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    voir GetFirstSelectedItemPosition

    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
     
    CListCtrl& theCtrl = GetListCtrl(); 
     
    POSITION pos = theCtrl.GetFirstSelectedItemPosition();
    if (pos == NULL)
       TRACE0("No items were selected!\n");
    else
    {
       while (pos)
       {
          int nItem =theCtrl.GetNextSelectedItem(pos);
          TRACE1("Item %d was selected!\n", nItem);
          // you could do your own processing on nItem here
       }
    }
    pour recuperer le contenu utilise GetItemText.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    listview->getItemText() n'existe pas? (pareil pour theCtrl.GetFirstSelectedItemPosition()? )

    Je dois surement me tromper quelque part? :0

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    ces fonctions font parties de la classe CLisCtrl
    tu es dans une CListView il recuperer l'acces a la CListCtrl comme dans mon exemple...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    que dois-je importer pour faire reconnaitre les ClistCtrl??

  6. #6
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    bah la premiere ligne du code de farscape te dis comment récupérer le CListCtrl associé à la vue si tu es dans la classe de ta vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CListCtrl& theCtrl = GetListCtrl();
    si tu es ailleurs alors ca donnerait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CListCtrl& theCtrl = nomdetavue.GetListCtrl();
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ca serait pas une listview des winforms par hasard ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    si, c'est bien une listView des windows form..
    Une autre méthode à me proposer?

    Et je n'arrive pas à faire reconnaitre les ctrl =/

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    grrrrrr ,comment on fait pour le savoir ?
    la prochaine fois met un tag [.net] dans ton message.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    oops autant pour moi

    C'est étrange qu'il n'y ai pas de méthode précise get / selected sur l'élément listview. Il y a bien un GetItemAt mais il attent un int en entrée et je ne trouve pas le moyen de récupérer le numéro de ligne sélectionée

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    peut-etre quelque chose comme ca , sur l'événement SelectedIndexChanged
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        private: System::Void listView1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) 
                 {
                     ListView ^l = safe_cast<ListView ^>(sender);
                     if (l->SelectedItems->Count > 0)
                         for (int i=0;i<l->Items->Count;i++)
                             if (l->Items[i] == l->SelectedItems[0])
                                 textBox1->Text = Convert::ToString(i);
                 }
    mais si ton but est d'obtenir l'élément selectionné, il faut utiliser SelectedItems

  12. #12
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par farscape
    grrrrrr ,comment on fait pour le savoir ?
    la prochaine fois met un tag [.net] dans ton message.
    ben, t'as laissé ta boule de cristal à la maison ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    merci beaucoup, j'ai un dernier soucis. En fait je clique sur des éléments d'une listview, et je veux que ça change dynamiquement le texte d'une text box. J'arrive donc à le faire à la première sélection, le mot s'affiche nikel dans le textbox, mais à la deuxième sélection le program plante et affiche comme erreur
    "Additional information: InvalidArgument=Value of '0' is not valid for 'index'."

    Le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    
    this->textBox48->Text = this->listView4->SelectedItems[0]->Text->ToString();


    Je vois pas trop d'où vient l'erreur

  14. #14
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il suffit de faire le test que j'ai précisé, tester s'il y a effectivement un item selectionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (l->SelectedItems->Count > 0)

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    ah ok, j'avais pas pensé au fait qu'il se déselectionnait

    un grand merci à toi!!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/06/2014, 14h14
  2. valeur d'un champ de sous form comme critere dans une requete
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/01/2008, 23h06
  3. Réponses: 1
    Dernier message: 20/09/2007, 15h15
  4. Imposer une valeur dans une ligne "identity" d'une
    Par mibo94 dans le forum Access
    Réponses: 1
    Dernier message: 26/11/2005, 16h59
  5. [vb excel]Tester une valeur dans une ligne
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/09/2005, 13h58

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