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

Visual C++ Discussion :

Les Formes : ListView et TreeView


Sujet :

Visual C++

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut Les Formes : ListView et TreeView
    Bonjour ,
    j'aimerais utilisais ListView et TreeView Dans ma form
    est ce que quelqu'un sait comment les utiliser ? comment les remplir ?

    merci

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    ce que je veux en fait c'est que dans la form j'ai par exemple un Textbox pour choisir le répertoire et lorsque je clique sur le boutton ok il m'affiche la liste des fichiers dedans
    j'ai crée un List View mais je sais pas comment l'utiliser

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut comment initialiser une liste et ajouter des éléments dedans
    c bon j'ai réussi à créer une list view dans ma form et mettre des éléments dedans
    par contre je veux faire ca avec une boucle, mais il y a un problème :

    pour ajouter les items à la listView avec une boucle c'est à dire
    comment ajouter des items à cette liste "temp1"avec une boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    array<ListViewItem^>^temp1 = {item1,item2,item3};
    listView1->Items->AddRange(temp1);

  4. #4
    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
    Par défaut
    c'est pas clair quand meme comme langage ...

    tu veux boucler sur quoi ? comment alimentes-tu le tableau ?

    exemple tout bete avec un entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	 array<int> ^tab = gcnew array<int>(10); // taille maxi
    		for (int i = 0 ; i < tab->Length ; i++)
    		 tab[i] = i;

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut copier les items cochés dans une listView dans une autre
    ok ca me parait aussi une bonne idée mais je suis passé par une liste et après je copy la liste dans l array (avec toarray)
    donc là quand je choisi un répertoire et je clique sur mon bouton(show) il m'affiche les fichiers et leur taille dans ma listview1 mais tous cochés : vu que j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView1->CheckBoxes = true;
    mtnt j'ai crée une listView2 et je veux copier les fichiers de la listView1 mais juste ceux qui sont cochés par l'utilisateur ..comment je pourrais faire ca ?

    merci

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    en fait je bloque sur un point :
    comment copier un item d'une listView 1 et le mettre dans une listView 2 ?

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut comment recuperer un item d'indice n d'une listView
    voici mon code:

    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
    listView2->View = View::Details;
    listView2->LabelEdit = true;
    listView2->AllowColumnReorder = true;
    listView2->CheckBoxes = true;
    listView2->FullRowSelect = true;
    listView2->GridLines = true ;
    listView2->Sorting = SortOrder::Ascending;	
    
    array<ListViewItem^>^temp2  ;
    int j =listView1->Items->Count;
    			
    			
    
    List<ListViewItem^>^ mylist2 = gcnew List<ListViewItem^>();
    for (int n=0;n<j;n++)
    {
    listView1->Items
    ListViewItem ^item = gcnew ListViewItem (c'est ici où je bloque comment recuperer le item numéro n de la listView1);
          if(item->Checked)
            {mylist2->Add(item);}
    }
    
    
    listView2->Columns->Add("file name", -2, HorizontalAlignment::Left);
    listView2->Columns->Add("size", -2, HorizontalAlignment::Left);
    temp2= mylist2->ToArray();
    listView2->Items->AddRange(temp2);
    			
    		 }

  8. #8
    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
    Par défaut
    tu as raison, une liste c'est souvent plus adapté qu'un tableau. Par contre, je comprends rien à ce que tu dis.
    Si tu veux boucler sur une liste, le plus simple c'est de faire un for each

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    j'ai fait un for each sur ma list mais que c'est une liste de "ListViewItem"
    ca marche pas ?
    il me dit que for each ca prend pas "ListViewItem"

    tous ce que je veut mtnt c'est copier les items d'une listview dans une autre listview

  10. #10
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for each (ListViewItem ^l in listView1->Items)
    	 listView2->Items->Add(gcnew ListViewItem(l->Text));

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    donc pour ajouter que ceux qui sont cochés je fais comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for each (ListViewItem ^l in listView1->Items)
    {
    if (l->checked) 
    listView2->Items->Add(gcnew ListViewItem(l->Text));
    }
    autre question pour récuperer le nom d'un fichier qui coresspond à la colone 1 d'un item je fais comment ?

    merci

  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
    Par défaut
    je ne sais pas comment tu as organisé ca, mais dans un listViewItem, il peut y avoir des listViewSubItems
    Dans tous les cas, c'est toujours la propriété Text qu'il faut utiliser, reste à savoir sur quel élément

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    je copie que la première colone et la 2ème colone ne se copie pas
    donc il faut passer par des sub items au lieu de items ?

  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
    Par défaut
    il faut aussi dupliquer les subitems, faire une deuxieme boucle imbriquée

  15. #15
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for each (ListViewItem ^l in listView1->Items)
    {
    listView2->Items->Add(gcnew ListViewItem(l->Text));
     for each(subitem ^s in l->subitems)
    mais il y a un pb comment recuperer le text de s

  16. #16
    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
    Par défaut
    Oula, je me demande bien quel peut etre le nom de cette propriété magique ...
    Pour toutes ces infos, Intellisence te renseigne bien, sinon il y a msdn

Discussions similaires

  1. problème avec les forms 6i!
    Par JauB dans le forum Oracle
    Réponses: 2
    Dernier message: 07/11/2005, 08h33
  2. Réponses: 7
    Dernier message: 27/10/2005, 14h24
  3. [FN]Question sur les formes normales
    Par joxbl dans le forum Schéma
    Réponses: 1
    Dernier message: 18/10/2005, 16h11
  4. [C#] Application MDI (instancier les form enfants)
    Par EFCAugure dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/10/2005, 11h30
  5. Quel est l'équivalent de Findcomponent pour les Forms ?
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 12
    Dernier message: 23/09/2005, 12h48

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