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# Discussion :

Selectionner un TreeNode dans un TreeView


Sujet :

C#

  1. #1
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut Selectionner un TreeNode dans un TreeView
    Bonjour,

    Je n'arrive pas a selectionner un TreeNode voulu dans une TreeView.
    Je m'explique : Je possede une TreeView avec des elements. L'utilisateur peut cliquer sur un element que je sauvegarde (je sauvegarde toute la treeNode). Il quitte la fenetre lorsqu'il revient, la TreeView et regenerer mais je n'arrive pas a aller jusqu'au noeud sauvegarde (expand) et a le selectionner.

    J'ai essaye plusieurs trucs sans succes comme TreeView.SelectedNode = MyNode mais rien ne foncrtionne.

    Si quelqu'un peut m'aider...

    Merci
    Contrec

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Pas sans ton code
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Désolé, moi aussi j'ai un Crystal Bowl Bug. Donc impossible de répondre ici.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Eh bien justement je n'ai pas de code vu que je n'ai pas reussi a selectionner un TreeNode...

    Quand a la creation du TreeNode, il fait 500 lignes avec des DataSets types donc illisibles en dehors du contexte.

    Mon probleme est que je recupere un path du TreeView du style

    A/B/C/D

    et lorsque je charge mon TreeView tous les noeuds sont fermes (Collapse)
    et je n'arrive pas a ouvrir mon path A puis B puis C et selectionner D (le dernier element.

    dsl de ne pas pouvoir mettre de code, tampis si prsonne ne peut m'aider...
    Contrec

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bon desole, mais je crois que je manque de vocabulaire propre à # et Visual Studio.
    Définis ce qu'est un TreeNode et un Treeview.
    Pour l'instant je les condidère comme des composant windows que tu peux placer sur une IHM.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Un TreeView est un arbre compose de noeud affiche exactement comme l'exploratuer de fichiers de Windows (avec des petits + et -).

    Chaque element d'un TreeView est un TreeNode (un noeud possedant un label, un tag, un niveau de hierarchie, un chamin complet pour y acceder).

    A chaque fois que l'on descend dans une branche, on incermente de level du TreeNode.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    A
    |
    ----B
         |
         ----C
               |
               ----D
    Le TreeNode D est de niveau 3 est a pour path complet A/B/C/D (chemin pour y acceder).

    Le TreeView a une propriete : SelectedTreeNode qui permet de definir le noeud selectionne. Moi je cherche a ouvrir les branches A/B/C/D et selectionner D pour qu'il soit en surbrillance.

    J'ai essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTreeView.SelectedTreeNode = MyNode // (qui est l'element D)
    Mais cela ne fonctionne pas.

    Voila mon soucis.
    Contrec

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Eh bien justement je n'ai pas de code vu que je n'ai pas reussi a selectionner un TreeNode...
    C'est faux, d'après ce que tu viens de nous dire tu as du code à montrer.
    Quand a la creation du TreeNode, il fait 500 lignes avec des DataSets types donc illisibles en dehors du contexte.

    Mon probleme est que je recupere un path du TreeView du style

    A/B/C/D

    et lorsque je charge mon TreeView tous les noeuds sont fermes (Collapse)
    et je n'arrive pas a ouvrir mon path A puis B puis C et selectionner D (le dernier element.
    Ininteressant de montrer les 500 lignes c'est vrais, mais tu devrais pouvoir sélectionner la partie de ton code qui correspond au chargement du treeview et le code qui se trouve autour de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTreeView.SelectedTreeNode = MyNode
    Je dit tout cela parce que l'on ne pourra pas t'aider autrement, on ne fait pas dans l'art divinatoir.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    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
    Ca marche pas un algo du genre (c'est du méchant pseudo code parce que j'ai pas une volée de temps pour l'instant... si par hasard la solution pourrait marcher, je peux faire un truc un peu mieux...):

    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
     
    // path = A/B/C/D où A, B, C, D sont les nom des noeuds et D la feuille à selectionnner
    void selectNodeFromPath(TreeNodeCollection collection, string path)
    {
      string currentName = path.split('/')[0];
      if(currentName == null)
      {
         //on est arrivé à la feuille
         return;
      }
      foreach(TreeNode node in collection)
      {
        if(node.Name == currentName)
        {
           node.Expand();
           monTreeView.selectedNode = node;
           TreeNodeCollection child = node.Childs;
            selectNodeFromPath(child, path-currentName);
            break;
        }
      } 
    }
    P'têtre que je vois pas le vrai problème... sinon ben tant mieux ^^
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Moi j'ai rien compris à cette phrase :
    Ca marche pas un algo du genre (c'est du méchant pseudo code parce que j'ai pas une volée de temps pour l'instant... si par hasard la solution pourrait marcher, je peux faire un truc un peu mieux...):
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  10. #10
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Je vais essayer ton algo... Tu as bien compris mon probleme : Selectionner un TreeNode a partir d'un TreeView avec tous les noeud fermes.
    Contrec

  11. #11
    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
    oula...

    bon alors dans l'ordre :

    @ced600 :
    En lisant le premier post, je me suis demandé si par hasard la question n'aurait pas du être :
    - Comment faire un algo qui parcourt un arbre de la racine à une feuille donnée en ouvrant chaque noeud parcouru et en selectionnant la feuille?

    C'est pourquoi je me demandais s'il avait déjà essayer un algorithme dans le genre de celui que j'ai proposé. Comme j'avais pas beaucoup de temps (expression suisse quand tu nous tiens...) j'ai vite fait un pseudo code de l'idée que j'avais afin de voir si par hasard ca pouvait répondre à sa question. De cette manière soit c'est un bon programmeur et il fait tout seul son algo en riant parce que c'est cool de faire un algo, soit c'est un mauvais programmeur et c'est à moi de faire l'algo version C# et pas version pseudo code...

    Ma phrase aurait du être :
    Je me demandais si l'algo suivant aurait pu répondre à ton problème... (désolé de ne pouvoir faire que du pseudo code, je suis un peu court en temps pour te coder un algo en C# pur).

    @Contrec :
    Ok, j'espère que ca va marcher.
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ok, j'ai compris par la suite ta phrase en rajoutant un point au bonne endroit.

    En lisant le premier post, je me suis demandé si par hasard la question n'aurait pas du être :
    - Comment faire un algo qui parcourt un arbre de la racine à une feuille donnée en ouvrant chaque noeud parcouru et en selectionnant la feuille?
    Je suis impressionné !!!!
    Peut tu me donner l'adresse du magasin où tu as acheté ta boule de cristal ? Parce que la je vois pas comment tu as réussi à le comprendre sans, j'avais compris totalement autre chose.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #13
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    C'est cool de faire un algo.

    Comme on dit toujours, y a pas d'eau sans algo

    (je prend des risques la...)
    Contrec

  14. #14
    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
    C'est parce que je le meilleur... c'est pour ca que je peux tout deviner à distance sans problème et tout résoudre en moins de deux secondes... bien sur ca commence à se savoir alors j'ai pas toujours beaucoup de temps à consacré à Dev.com...



    Sinon ca joue (autre expression suisse pour dire ca va?) c't'algo ou quoi ?
    Au travail, il y a deux sortes de personnes. Ceux qui ont un pistolet chargé, et ceux qui creusent. Moi je creuse...

  15. #15
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Euhhh ben disons que j'ai eu d'autre priorites sur mon appli donc je n'ai pas travaille sur le select d'un TreeNode car ceci est juste pour l'utilisateur quand il quitte l'onglet et reviens dessus...
    Je dois continuer a faire grandir mon appli mais je ferai cet algo entre cette semaine et la semaine prochaine.
    Promis je laisse un message sur cette discussion avec la solution complete (si toutefois cela marche).
    Contrec

  16. #16
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Au fait si t'es le meilleur j'ai cree une autre discussion hier avec un probleme qui mennuie beaucoup plus que celui ci (juste pour info lol).
    Contrec

Discussions similaires

  1. selectionner un champ dans un treeview
    Par c_julius1 dans le forum VBA Access
    Réponses: 14
    Dernier message: 25/11/2009, 10h14
  2. [VBA] Réagir aux clics dans mon TreeView
    Par Neilos dans le forum IHM
    Réponses: 2
    Dernier message: 16/06/2005, 09h03
  3. Ordonnée des données dans un TreeView
    Par LoicH dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/04/2005, 18h08
  4. Pbs pour Glisser-Deplacer des noeuds dans un TreeView.
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/09/2004, 21h02
  5. Des colonnes dans un Treeview
    Par mr_langelot dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/07/2004, 09h52

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