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 :

Treeview et checkbox


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 420
    Points
    420
    Par défaut Treeview et checkbox
    Bonjour à tous,

    je remplis un treeview par programmation comme ceci:
    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
     
    public void Arbre()
     {
          string strSQLRacine = "SELECT champ FROM table GROUP BY champ";
          SQLiteCommand cmdSQLite = new SQLiteCommand(strSQLRacine, cnSQLite);
          SQLiteDataReader rdSQLite = cmdSQLite.ExecuteReader();
          trv.Nodes.Clear();
          while (rdSQLite.Read())
          {
              nod = trv.Nodes.Add(rdSQLite[0].ToString());                
              AddChildNode(nod);                                              
           }
    }
    private void AddChildNode(TreeNode tn)
    {
         string strSQLPanneau = "SELECT champ1,champ2,champ3 FROM table WHERE commune LIKE '%" + AjCote(tn.Text) + "%';";
         SQLiteCommand cmdSQLiteFils = new SQLiteCommand(strSQLPanneau,  cnSQLite);
         SQLiteDataReader rdSQLiteFils = cmdSQLiteFils.ExecuteReader();
         while (rdSQLiteFils.Read())
         {
             TreeNode nod = tn.Nodes.Add(rdSQLiteFils[1].ToString(), rdSQLiteFils[2].ToString());
         }
    }
    Ensuite souhaiterais que lorsqu'on coche un noeud père, les éléments fils suivent et vice versa.

    J'ai besoin d'un coup de pouce dans ce sens.

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Points : 359
    Points
    359
    Par défaut
    Tu dois associé une méthode de traitement du check de l'instance des fils à l'event du père.

    Pere a public event CheckedEvent Checked;

    et bien quand tu crées un fils tu dois faire :
    this.Checked += monFils.MonTraitement

    Avec MonTraitement une methode respectant la signature du type de l'évènement de Checked.

    C'est claire ?

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 420
    Points
    420
    Par défaut
    Merci j'ai resolue le:
    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
     
    trv.NodeMouseClick += new TreeNodeMouseClickEventHandler(trv_NodeMouseClick);
    private void trv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                TreeNode clickedNode = e.Node;
                if (clickedNode.Checked)
                {
                    CheckAllChildNodes(clickedNode, true);
                }
                else
                {
                    CheckAllChildNodes(clickedNode, false);
                }
            }
     
    private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
            { //Met à jour recursivement les noeuds
                foreach (TreeNode node in treeNode.Nodes)
                {
                    node.Checked = nodeChecked;
                    if (node.Nodes.Count > 0)
                    {
                        //Si le noeud courant a un fils, alors on appelle checkAllChield (Recursivité)
                        this.CheckAllChildNodes(node, nodeChecked);
                    }
                }
            }

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

Discussions similaires

  1. [VBA-Excel] Treeview et Checkboxes
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2007, 17h37
  2. vb.net : treeview avec checkbox
    Par 1coni dans le forum Windows Forms
    Réponses: 11
    Dernier message: 31/05/2006, 13h18
  3. [C#] TreeView avec CheckBox à certain niveaux
    Par Maxsin dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/04/2006, 16h29
  4. TreeView et checkbox
    Par BigBenQ dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/08/2005, 08h27
  5. [C#] TreeView avec CheckBox "indeterminate"
    Par padumeur dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/01/2005, 20h53

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