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

C++/CLI Discussion :

listView c++ cli


Sujet :

C++/CLI

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut listView c++ cli
    Bonjour;

    Je créer un tableau de string, puis le remplir, et finalement l'affiché dans une listView, jai fais comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String *subItems[] = new String*[10];
    subItems[4]="1";
    subItems[2]="2";
    subItems[3]="3";
    subItems[1]="4";
    subItems[5]="5";
     
     
     
    ListViewItem* itm = new ListViewItem(subItems);
    listView1->Items->Add(itm);
    mais malheureusement ça marche pas, jai essayé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    cli::array<String ^, 1> ^ tabChaine = gcnew cli::array<String ^>(3);
    tabChaine[0] = "Element 1";
    tabChaine[1] = "Element 2";
    tabChaine[2] = "Element 3";
     
    this->listView1->Items->Add(tabChaine);
    => il me fais cette erreur :Error cannot convert parameter 1 from 'cli::array<Type,dimension> ^' to 'System::String ^'


    aidez moi svp,

    Merci énormement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Par défaut
    Bonjour,

    Voici ton code modifié. Il ne génère pas d'erreur à la compilation.

    using namespace System::Collections::Generic;
    array<String^>^ subItems=gcnew array<String^>(5);
    subItems[0]="1";
    subItems[1]="2";
    subItems[2]="3";
    subItems[3]="4";
    subItems[4]="5";
    ListViewItem^ itm1=gcnew ListViewItem(subItems);
    ListViewItem^ itm2=gcnew ListViewItem();
    array<ListViewItem^>^ items={itm1,itm2};
    listView1->Items->AddRange(items);

    Toutefois, je n'ai pas bien compris la structure de la classe ListView par rapport à son affichage à l'exécution.
    Des exemples en image de ce type de control serait le bienvenue pour mieux comprendre sa programmation...

    Tiens nous au courant...

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    Merci énormement,

    Comment récuperer les lignes de la listView??, comment on peux colorier une ligne ?

    Merci encore une fois

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut récuperation des élements de la listView
    bonjour,

    je veux afficher tous les élément de la list view, jai fais :


    for each (String ^s in listView2->Items)
    {sw->WriteLine(s);}

    mais il fait une Exception


    Merci beaucoup

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Par défaut
    Bonjour,
    Pourrais-tu fournir le début de ton code qui a servi à initialiser puis définir le contenu de ta listView pour une meilleur lisibilité de ton problème ?
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Par défaut
    Voici ta modification:

    For each (ListViewItem^ itm in listView1->Items)
    listBox1->Items->Add(itm->Text);

    cela ne marchais pas car listView1->Items correspond non pas à une class String^, mais à une class ListViewItem et c'est la raison pour laquelle tu a un bug correspondant à un mauvais type lors du transtypage entre les 2 class de chaque coté de "in" dans ta boucle.

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    Merci énormement, cependant il affiche que le 1er item, comment affiché les autre (ç-à-d ligne par ligne)

    Merci beaucoup

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    Bonjour,

    Comment affiché tous les items de listView, est ce qu'il faut utiliser ViewItemCollection?? , avec
    for each (ListViewItem^ itm in listView2->Items) il affiche que le 1er élément

    merci énormement,

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Par défaut
    Bonjour,
    Voici un code qui affiche 2 items dans une listbox, en espérant que cela t'aide:

    array<String^>^ subItems=gcnew array<String^>(5);
    subItems[0]="1";
    subItems[1]="2";
    subItems[2]="3";
    subItems[3]="4";
    subItems[4]="5";
    ListViewItem^ itm1=gcnew ListViewItem(subItems);
    itm1->Text="1";
    ListViewItem^ itm2=gcnew ListViewItem();
    itm2->Text="2";
    array<ListViewItem^>^ items={itm1,itm2};
    listView1->Items->AddRange(items);
    listBox1->Items->Clear();
    for each (ListViewItem^ itm in listView1->Items)
    listBox1->Items->Add(itm->Text);

    A bientôt

  10. #10
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    Bonjour,

    Dsl, Je croix que jai mal exoliqué ce que je veux, je veux afficher les ligne de la listView (Ligne par ligne), après avoir remplis la listView je souhait qu'il m'affiche: 1 2 3 4 5

    merci infiniment

  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
    Par défaut
    qu'il t'affiche ou ?

  12. #12
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    Bonjour,

    j'utilise un timer pour remplir la listView, quand j'aurais fini le remplissage je veux enregistrer dans un fichier . txt

    jais fai sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    System::IO::StreamWriter ^sw = gcnew System::IO::StreamWriter("dump.txt");
    for each (ListViewItem^ itm in listView2->Items)
    {sw->WriteLine(itm->Text);}
     sw->Close();
    }
    mais malheureusement il maffiche que la 1er colone de chaque lignes, sachant que jai 10 colone,

    Merci infiniment

  13. #13
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 33
    Par défaut comment sauter les lignes dans le fichier texte ?
    Bonjour,

    evenement de timer {
    for (int i=0;i<12;i++)
    {DumpText += subItems[i]+" ";}
    DumpText +="\n";
    ListViewItem^ item1=gcnew ListViewItem(subItems);
    ListViewItem^ item2=gcnew ListViewItem();
    array<ListViewItem^>^ items={item1,item2};
    listView2->Items->AddRange(items);
    }

    click bouton{
    System::IO::StreamWriter ^sw = gcnew System::IO::StreamWriter("Dump.txt");
    sw->WriteLine(DumpText);
    sw->Close();
    }

    mais le problem qui se pose c'est le fichier texte ne se remplie pas ligne par ligne (or chaque listeviewItem il s'afiche avec une autre ligne)
    commet afficher chaque ligne a par

    Merci de votre attention

  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
    je comprends pas trop le problème, mais faut aussi enregistrer les subitems s'il y en a

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Bonjour à tous!
    Mon problème est le suivant :
    J'ai une ListView (pas de .net) sur laquelle on peut Drag'n'Drop les fichiers
    Apres, j'ai le chemin complet du fichier qui doit s'afficher dans une item de la ListView
    Mais au lieu d'avoir le chemin j'ai plein de carreaux qui s'affichent.
    Pour recuperer le chemin j'utilise DragQueryFile qui copie le chemin
    dans une variable buffer et appres cela, la valeur de ce buffer est passée a la item(LVITEM) de la listview (pszText).
    si qqn pouvait m'aider ou donner la bonne methode?

    je suis sous VS2008

    MERCI

  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
    re-poste ton message à la racine du forum Visual C++

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    En fait j'ai resolu mon pb. par moi meme
    Merci

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Par défaut
    Bonjour,

    J'ai eu le même problème sur la lecture d'un fichier:
    ...
    StreamReader^ Fichier=gcnew StreamReader("Fichier.txt",Encoding:efault)
    ...

    Sans placer Encoding:efault, la lecture du fichier me remplacer les caractères spéciaux par des caractères carrés.
    Apparement Encoding est une classe qui permet de tenir compte des types de caractères à lire ou écrire.

    En espérant que ça réponde en partie à ton problème.

    Bonne année 2008.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    j'avais ecrit que j'utilisais pas le ".net"
    mais moi c'etait une question de declaration de variable
    (buffer pour stocker le PATH)
    en fait il fallait une variable globale
    mais merci quand meme

    et BONNE ANNEE AUSSI!!!

Discussions similaires

  1. Thread et listView C++ cli
    Par abbd dans le forum C++/CLI
    Réponses: 9
    Dernier message: 01/08/2007, 13h40
  2. Colorer un Item de la listView C++ CLI
    Par abbd dans le forum C++/CLI
    Réponses: 1
    Dernier message: 25/07/2007, 15h10
  3. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49
  5. ListView
    Par SnickeursMan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/08/2002, 10h42

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