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

Windows Forms Discussion :

Pb avec un treeview


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut Pb avec un treeview
    Bonsoir,

    Apres de nombreuses recherches sur les sites, les forums, etc... j'ai bcp de mal a comprendre la philosophie du treeview.
    J'essaye depuis environ 4 heures de construire un treeview pour lister les propriété des mes différentes cartes réseaux.

    En gros j essaye de faire ceci :
    Nom de la carte
    - Mac adress
    - connecté ou non
    - Vitesse
    - IP
    - Subnet
    - Passerelle
    - DNS1
    - DNS2

    je collecte mes informations depuis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mesInterfaces = NetworkInterface.GetAllNetworkInterfaces
    Je ne suis pas arrivé a faire le 1er Noeds qui est d'inscrire : Interface réseau.

    Helppppppppppppppppp

    Merci a vous

    Anax

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    L'arbre que tu veux obtenir au final, il est comme ça ?

    • Interfaces réseau
      • Nom de la carte 1
        • Mac adress
        • connecté ou non
        • Vitesse
        • IP
        • Subnet
        • Passerelle
        • DNS1
        • DNS2
      • Nom de la carte 2
        • Mac adress
        • connecté ou non
        • Vitesse
        • IP
        • Subnet
        • Passerelle
        • DNS1
        • DNS2



    Dans ce cas, tu commences par créer le noeud racine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rootNode As TreeNode = treeView1.Nodes.Add("Interfaces réseau")
    Ensuite, pour chaque interface, tu ajoutes au noeud racine un sous-noeud :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim interfaceNode As TreeNode = rootNode.Nodes.Add(nom_de_l_interface)
    Auquel tu ajoutes un sous-noeud pour chaque propriété de l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    interfaceNode.Nodes.Add("Adresse MAC : " & adresse_mac)
    interfaceNode.Nodes.Add("Connecté : " & connecte)
    ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    c est exactement cela
    Je n'y comprends decidement rien au treeview
    mais par contre je vais devoir sauver les infos.
    Je vais regarder comment le lire pour le sauvearder en fin de traitement
    Encore merci bcp

    Anax

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Anaxagore Voir le message
    Je n'y comprends decidement rien au treeview
    Ben c'est pas compliqué en fait :
    - le TreeView contient des noeuds, qui sont de type TreeNode
    - les noeuds racine (de premier niveau) sont dans la collection Nodes du TreeView
    - chaque TreeNode a une collection de sous-noeuds, accessibles par sa propriété Nodes

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Bon desolé mais apres test, je n'y arrive tjrs pas
    voici le code que j'utilise

    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
     
            'Interfaces Réseau
            'Initialisation de root réseau du treeview
            Dim rootNode As TreeNode = TheTreeview.Nodes.Add("Network Interface")
     
            ' Récuparétion de la liste des interfaces réseau
            mesInterfaces = NetworkInterface.GetAllNetworkInterfaces
            Dim inter As NetworkInterface
     
            Try
                For Each inter In mesInterfaces
                    Dim interfaceNode As TreeNode = rootNode.Nodes.Add(inter.Description)
                    interfaceNode.Nodes.Add("Status : " & monInterface.OperationalStatus.ToString)
                Next
            Catch ex As Exception
                Dim interfaceNode As TreeNode = rootNode.Nodes.Add("Impossible de détecter une interface sur cette machine")
            End Try
    Chose assez bizarre :

    1) Qud je retire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    interfaceNode.Nodes.Add("Status : " & monInterface.OperationalStatus.ToString)
    J'obtiens bien :
    Interfaces réseau
    * Nom de la carte 1
    * Nom de la carte 2

    Par contre en le laissant j'obtiens :
    Interfaces réseau
    * Nom de la carte 1
    * Impossible de détecter une interface sur cette machine

    Je ne comprends pas pourquoi il ne change la donne qud j'ajoute des information

    Anax

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Faire un try/catch, c'est bien, mais si tu en profites pour récupérer les infos sur l'exception c'est mieux
    Ca permet de voir ce qui s'est passé

    Enfin bon, je soupçonne une NullReferenceException... Sur la ligne qui plante, tu utilises la variable monInterface, alors que l'interface en cours de la boucle est inter... remplace monInterface par inter, ça devrait marcher

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Yep ca marche bcp mieux
    Effectivement, il commence a ce faire tard et je suis désolé d'avoir oublié d afficher l'erreur
    J'ai commencé le VB.net ce WE et il faut que je développe cette interface assez rapidement
    Encore merci pour ton aide
    Par contre, aurais tu des pistes pour sauvegarder le treeview dans un fichier?
    Je suis en train de coder la sauvegarde des autres éléments de cette interface.

    Merci d'avance pour les infos que tu pourras me donner.

    Anax

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Anaxagore Voir le message
    Par contre, aurais tu des pistes pour sauvegarder le treeview dans un fichier?
    Sauvegarder le TreeView ? C'est plutôt les données sur les interfaces réseau qu'il faudrait sauvegarder, non ? Après, tu peux toujours reconstruire le TreeView à partir de ces données si besoin...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Je vais encore t embetter mais je n'arrive pas a collecter ces elements la pour les cartes :
    # IP
    # Subnet
    # Passerelle
    # DNS1
    # DNS2

    J'ai des erreurs ds le treeview a chaque fois que j'essaye d'utiliser un autre bout de code. Serais tu par hasard comment je peux les retrouver ?
    Je pense qu'il sont contenu ds la classe que j'utilise mais j'arrive pas a trouver bcp d'info

    Merci d'avance

    Anax

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Anaxagore Voir le message
    Je vais encore t embetter mais je n'arrive pas a collecter ces elements la pour les cartes :
    # IP
    # Subnet
    # Passerelle
    # DNS1
    # DNS2
    Là c'est est un autre problème... ouvre plutôt une nouvelle discussion

    Citation Envoyé par Anaxagore Voir le message
    J'ai des erreurs ds le treeview a chaque fois que j'essaye d'utiliser un autre bout de code. Serais tu par hasard comment je peux les retrouver ?
    Je pense qu'il sont contenu ds la classe que j'utilise mais j'arrive pas a trouver bcp d'info
    Ben exécute le programme en pas à pas (F10/F11), ou mets des breakpoints (F9) pour voir où est le problème...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    bon alors je pense avoir un bout de réponse mais je ne sais comment faire
    J'ai cherché toute la journée ....

    Voila j'arrive bien a avoir mon tree view mais qud j ajoutes des infos ds le treeview provenant d'un autre endroit il me rajoute des noeuds alorq qu'il existe déja.
    Pour inter clair :
    Interface réseau
    + Interface 1
    + info 1
    + Interface 1
    + info 2 (différent de info 1)

    Comment puis je lui dire que si le bode existe, il faut qu'il ecrive en child et non sur le même niveau?

    Merci d'avance

    Anax

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    J'ai pas tout compris
    Fais voir ton code, ce sera plus clair

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Ok j'ai un fichier dans lequel j'ai des lignes. Le 1er champ me permet de savoir a quelle catégorie il corresponds. J'ai en tout 2 catégories : DNS et Port.
    Ensuite, j'ai le 2nd champ qui m'indique le serveur sur lequel j'effectue le test.
    Voici en gros une ligne de mon fichier texte :
    DNS;From;To;To_IP;Result_DNS;Reverse_Test

    Voici le code que j'ai écrit :
    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
     
                Dim rootNode_DNS As TreeNode = TheTreeview.Nodes.Add("DNS Resoltion Testing Result")
                Dim rootNode_Port As TreeNode = TheTreeview.Nodes.Add("Firewal Port Testing Result")
     
                'Boucle pour ecrire les données dans le Treeview
                Ligne = sr.ReadLine()
                While Not Ligne = Nothing
                    TAB = Ligne.Split(";")
                    Select Case TAB(0)
                        Case "Port"                                                             'Si tab(0) = Port
                        Case "DNS"                                                              'Si tab(0) = DNS
                            interfaceNode_DNS = rootNode_DNS.Nodes.Add(TAB(1).ToString)
                            If rootNode_DNS.Name.ToString <> TAB(1).ToString Then
                                interfaceNode_DNS = rootNode_DNS.Nodes.Add(TAB(1).ToString)
                            Else
                                'interfaceNode_DNS = rootNode_DNS.Nodes.Add(TAB(1).ToString)
                            End If
                    End Select
                    TAB = Nothing
                    Ligne = sr.ReadLine()
                End While
    Voile pb c est que je n'arrive pas a faire un tree du genre :

    DNS
    + From
    + To; TO_IP; etc...

    Pourrais tu me dire ce qui cloche? je n'ai pas réussi à composer le test de regroupement sur le from.

    Merci d'avance

    Anax

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben tu crées systématiquement un nouveau noeud pour l'interface, sans vérifier s'il existe déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    interfaceNode_DNS = rootNode_DNS.Nodes.Add(TAB(1).ToString)
    Il faudrait faire ça plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If interfaceNode_DNS Is Nothing OrElse interfaceNode_DNS.Text <> TAB(1) Then
        interfaceNode_DNS = rootNode_DNS.Nodes.Add(TAB(1))
    End If
    Au fait, inutile d'appeler ToString sur des objets de type String

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Merci bcp pour ta réponse, cela fonctionne impec je vais repartir de plus belle

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

Discussions similaires

  1. Créer un arbre avec cellules (treeview)
    Par Scritch852 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2007, 12h22
  2. Problème avec un treeview
    Par adicor dans le forum MFC
    Réponses: 8
    Dernier message: 01/12/2006, 22h59
  3. [VB.Net] Pb avec les treeview, fan d'algo...
    Par bisounux dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/02/2006, 16h31
  4. prb avec un treeview et data
    Par mikyfpc dans le forum C++Builder
    Réponses: 7
    Dernier message: 14/12/2004, 22h59
  5. Problème avec Virtual Treeview
    Par bisounoursbleu dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/12/2004, 15h37

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