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 :

Ouvrir un fichier avec un TreeView [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Ouvrir un fichier avec un TreeView
    Bonjour. Est-il possible de cliquer sur un nœud de TreeView afin qu'il ouvre en lecture/écriture un fichier texte dans un Rich Textbox, et cela dans un même formulaire ? Merci pour vos réponses.

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    peux tu donner plus de details !!

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour. Je crée un formulaire sur lequel je mets un treeview à gauche et un rich textbox à droite. Je voudrais savoir si c'est possible de cliquer sur un noeud du treeview pointant sur un fichier texte quelconque afin d'ouvrir ce dernier dans le rich textbox.

    Nom : Capture.PNG
Affichages : 574
Taille : 49,0 Ko

    Si cela est faisable, est-il possible de m'indiquer la ou les méthodes à employer car je cherche depuis pas mal de temps sur le web et je n'ai rien trouvé pour ce cas précis. Merci.

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    dans l’événement click tu peux mettre tous ce que tu veux.
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void treeView1_NodeMouseClick(object sender,  
        TreeNodeMouseClickEventArgs e)
    {
        textBox1.Text = e.Node.Text;
    }

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci, j'ai essayé mais ça ne marche pas

    Voici le 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    public partial class Form1 : Form
        {
            string vrb1 = "livre1";
            string vrb2 = "livre2";
            string vrb3 = "livre3";
     
            public Form1()
            {
                InitializeComponent();
     
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                treeView1.Nodes.Add("Livres");
                treeView1.Nodes.Add("Documents");
                treeView1.Nodes.Add("Dossiers");
     
                treeView1.Nodes[0].Nodes.Add(vrb1);
                treeView1.Nodes[0].Nodes.Add(vrb2);
                treeView1.Nodes[0].Nodes.Add(vrb3);
     
                treeView1.Nodes[1].Nodes.Add("Document1");
                treeView1.Nodes[1].Nodes.Add("Document2");
                treeView1.Nodes[1].Nodes.Add("Document3");
     
                treeView1.Nodes[2].Nodes.Add("Dossier1");
                treeView1.Nodes[2].Nodes.Add("Dossier2");
                treeView1.Nodes[2].Nodes.Add("Dossier3");
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                SuppChoixNoeux(treeView1.Nodes);
            }
     
            List<TreeNode> choixNoeux = new List<TreeNode>();
            void SuppChoixNoeux(TreeNodeCollection chxNoeux)
            {
                foreach (TreeNode noeux in chxNoeux)
                {
                    if (noeux.Checked)
                    {
                        choixNoeux.Add(noeux);
                    }
                    else
                    {
                        SuppChoixNoeux(noeux.Nodes);
                    }
                }
     
                foreach (TreeNode choixN in choixNoeux)
                {
                    chxNoeux.Remove(choixN);
                }
            }
            string Path = "Dossier_TreeView";
            private void button3_Click(object sender, EventArgs e)
            {
                ListRepertoire(treeView1, Path);
            }
     
            private void ListRepertoire(TreeView treeView, string path)
            {
                treeView.Nodes.Clear();
                var admRepertoireInfo = new DirectoryInfo(Path);
     
                treeView.Nodes.Add(CreerRepertoireNoeux(admRepertoireInfo));
            }
     
            private static TreeNode CreerRepertoireNoeux(DirectoryInfo repertoireInfo)
            {
                var repertoireNoeux = new TreeNode(repertoireInfo.Name);
                foreach (var repertoire in repertoireInfo.GetDirectories())
                    repertoireNoeux.Nodes.Add(CreerRepertoireNoeux(repertoire));
     
                foreach (var fichier in repertoireInfo.GetFiles())
                repertoireNoeux.Nodes.Add(new TreeNode(fichier.Name));
     
                return repertoireNoeux;
            }
     
            private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                richTextBox1.Text = e.Node.Text;
            }
     
     
        }
    Une autre suggestion ?

  6. #6
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Il ne fallait pas prendre au mot la réponse d'azstar mais la compléter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            string dossierRacine = "D:\\Dossier";
     
            private void treeView1_NodeMouseClick_1(object sender, TreeNodeMouseClickEventArgs e)
            {
                textBox1.Text = String.Join("",File.ReadAllLines(dossierRacine + "\\" + e.Node.Text)); // il a des tas de façons de lire le fichier , donc si celle la ne te plait pas tu peux facilement la changer
            }
    Vu qu'il n'y a que le nom de ton fichier dans le TreeView , il faut que tu définisse ou récupère le dossier parent ou tu iras chercher les différents fichiers, cela fait , cela t'ouvrira les fichiers concernés.

    Voila en espérant que j'ai pu t'aider .

    PS : Sinon j'ai trouvé ton premier message assez clair personnellement.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci PixelJuice. Je suis encore novice en matière de c# et je n'ai pas encore suffisamment de bagages pour comprendre les indications que l'on me donne. J'ai essayé ta méthode et ça ne marche toujours pas. Est-ce que cela fonctionne de ton coté ?

    Mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string dossierRacine = "C:\\Users\\sonic\\Documents\\Dossier_TreeView";
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                richTextBox1.Text = String.Join("", File.ReadAllLines(dossierRacine + "\\" +  e.Node.Text)); 
            }
    Je continue de chercher de mon coté mais je suis toujours preneur pour une autre suggestion.

  8. #8
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    oui ça marche de mon coté , je ne mets jamais du code si je ne l'ai pas testé au préalable.

    Tu as une erreur ? Qu'est ce qui se passe exactement? Ton code a pourtant l'air bon.

    As-tu assigner au TreeView la méthode que l'on t'as donné ?S'il ne se passe rien , c'est fort probable que non.

    Si c'est le cas , mets cette ligne dans le constructeur de ta Form (ou est le TreeView) , juste après InitializeComponent();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.treeView1.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick_1);
    si ton TreeView s’appelle autrement que treeView1 , change la ligne avec les tes infos a toi.De cette manière , tu abonnes ton TreeView a l'évenement que l'on t'avais proposé.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour. Effectivement, je n'avais pas assigné la méthode au TreeView dans le constructeur. C'est fait et sa marche. Je te remercie encore pour ton aide qui m'a permis d'avancer dans mon apprentissage du c#

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

Discussions similaires

  1. Ouvrir un fichier avec son programme
    Par aliwassem dans le forum Delphi
    Réponses: 1
    Dernier message: 21/10/2006, 21h26
  2. ouvrir un fichier avec la fonction Filesearch
    Par sofiane06 dans le forum Général VBA
    Réponses: 11
    Dernier message: 04/08/2006, 12h14
  3. Comment ouvrir un fichier avec AppWIZARD
    Par orj30754 dans le forum MFC
    Réponses: 1
    Dernier message: 24/05/2006, 17h24
  4. ouvrir un fichier avec son application
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 02/02/2006, 16h57
  5. Ouvrir un fichier avec une appli déjà lancée
    Par Cameleon45 dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 17h42

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