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 :

[CODE] Passer d'un tableau String^ à une Hierarchie dans un TreeView [Sources]


Sujet :

Visual C++

  1. #1
    Membre régulier Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 90
    Points
    90
    Par défaut [CODE] Passer d'un tableau String^ à une Hierarchie dans un TreeView
    Pas vraiment sur que mon post doivent par ici, mais je trouvais pas un autre endroit pour le mettre ^^.


    Donc après plusieurs heures de recherche et un peu,pardon très peu, de réflexion j'ai enfin réussi à avoir un code C++/CLI qui permet de remplir un TreeView en fonction d'un tableau de string.

    Ce code est très fortement inspirer de ce post qui parle de la même chose, mais en C# (juste une transformation pour qu'il soit supporter par CLI).

    Enjoy it ^^

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    List<String^> list = gcnew List<String ^>();
    list.add("Racine/1erniveau/2emeniveau");
    list.add("Racine2/1erniveau");
    list.add("Racine/1erniveau2");
    donne :
    Racine
    ......¦
    ......-1erniveau
    ......|........|
    ......|........-2emeniveau
    ......-1erniveau2
    Racine2
    ......|
    ......-1erniveau

    Voici le code :
    [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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
      TreeNode^ myPreviousNode;
      for each (String^ myPath in list)
      {
        cli::array<String^>^ partofpath = myPath->Split('/');
     
          if (treeTest->Nodes->Count == 0)
          {
              for (int i = 0; i < partofpath->Length; i++)
              {
                  TreeNode^ myNode = gcnew TreeNode(partofpath[i]);
                  if (!myPreviousNode)
                      treeTest->Nodes->Add(myNode);
                  else
                      myPreviousNode->Nodes->Add(myNode);
                      myPreviousNode = myNode;
                  }
          }
          else
          {
              TreeNodeCollection^ myCurrentNode = treeTest->Nodes;
              for (int i = 0; i < partofpath->Length; i++)
              {
                  bool IsAlreadyAdded = false;
                  for each (TreeNode^ curTree in myCurrentNode)
                  {
                      if (curTree->Text->Equals(partofpath[i]))
                      {
                          IsAlreadyAdded = true;
                          myCurrentNode = curTree->Nodes;
                          break;
                      }
                  }
     
                  if (IsAlreadyAdded == false)
                 {
                      TreeNode^ myNode = gcnew TreeNode(partofpath[i]);
                      myCurrentNode->Add(myNode);
                      myCurrentNode = myNode->Nodes;
                 }
             }
         }
      }
    Vu le temps qu'il m'a fallu pour le trouver je me suis dit que ca serait pas un mal de le poster par ici en espérant qu'il puisse servir à d'autre...
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  2. #2
    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
    Merci de ta contribution

Discussions similaires

  1. Tableau string à une dimension
    Par Poulain dans le forum Windows Forms
    Réponses: 10
    Dernier message: 18/04/2008, 16h49
  2. insérer un tableau d'une dimension dans un tableau à deux dimensions
    Par johnny3 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 03/03/2008, 19h04
  3. Utiliser le tableau d'une subroutine dans une autre
    Par phy4me dans le forum Fortran
    Réponses: 2
    Dernier message: 31/08/2007, 23h38
  4. Réponses: 10
    Dernier message: 02/02/2007, 16h00
  5. Passer le résultat (tableau) d'une fonction
    Par coyote90 dans le forum Access
    Réponses: 3
    Dernier message: 10/11/2005, 19h56

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