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

VB.NET Discussion :

XML & Treeview


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut XML & Treeview
    salut tous le monde
    merci beaucoup pour les personnes qui cherchent à aider les autres dans ce forum ...
    bref cette fois je veux vous mettre sur scène pour comprendre mon problème :
    1\ Mon Form se compose d'un Bouton + Combobox + Treeview
    2\ Lorsque je choisis entre les choix du Combobox ( dans mon cas j'ai "User" ou "Stagiaire") dans se cas deux fichiers XML se charge dynamiquement

    le premier fichier s'appelle MenueAdmin.XML est le résultat devient comme-ça



    au même temps la deuxième fichier Menue.XML se charge est elle vas nous donner des autorité qui sont écrit dedans


    et le résultat devient comme ça




    La première partie est résolue dans ce sujet. Je voudrais juste savoir comment charger le deuxième fichier

    merci

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut rabso007,

    Citation Envoyé par rabso007 Voir le message
    a ce point mon problème est difficile a résoudre !!
    Non, c'est juste que tu ne nous as pas prémaché le travail. Ça ressemble comme 2 gouttes d'eau à "s'il vous plait faites mon exercice"..

    De plus, comme je t'ai dit hier, utilise les balises prévues pour insérer du code (icone #). On aimerais pouvoir réutiliser le contenu de tes xml pour t'aider au lieu de les retaper bêtement..

    Quoiqu'il en soit j'ai une solution à ton problème:

    Des classes représentant un groupe, un menu et un sous-menu:
    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
    'Classes Groupe / Menu / SousMenu
     
    Public Class Groupe
     
        Public Property Name As String
        Public Property Menus As List(Of Menu)
     
    End Class
     
    Public Class Menu
     
        Public Property Name As String
        Public Property Form As String
        Public Property SousMenus As List(Of SousMenu)
     
    End Class
     
    Public Class SousMenu
     
        Public Property Name As String
        Public Property Form As String
     
    End Class
    Mon formulaire:
    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
    91
    92
    93
    94
    Public Class Form1
     
        Private Property MenuXML As String = "Menu.xml"
        Private Property MenuAdminXML As String = "MenuAdmin.xml"
     
        'Chargement du formulaire
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim groupes As List(Of Groupe) = GetGroupesFromXML(MenuAdminXML)
     
            FillTreeViewFromGroupe(TreeView1, groupes.FirstOrDefault)
            FillTreeViewFromGroupe(TreeView2, groupes.FirstOrDefault)
     
        End Sub
     
        'Changement d'index de la combobox
        Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim cb As ComboBox = sender
            CheckTreeViewFromGroupe(TreeView2, cb.SelectedItem.ToString)
        End Sub
     
        'Retourne une liste de groupe présent dans un fichier xml
        Private Function GetGroupesFromXML(filename As String) As List(Of Groupe)
            GetGroupesFromXML = New List(Of Groupe)
     
            Dim doc As XDocument = XDocument.Load(filename)
            Dim root As XElement = doc.Element("accueil")
     
            For Each gElem As XElement In root.Elements("GROUPE")
                Dim g As New Groupe
                g.Name = gElem.Attribute("name")
                g.Menus = New List(Of Menu)
                GetGroupesFromXML.Add(g)
     
                For Each mElem As XElement In gElem.Elements("MENU")
                    Dim m As New Menu
                    m.Name = mElem.Attribute("name")
                    m.Form = mElem.Attribute("form")
                    m.SousMenus = New List(Of SousMenu)
                    g.Menus.Add(m)
     
                    For Each smElem As XElement In mElem.Elements("SMENU")
                        Dim sm As New SousMenu
                        sm.Name = smElem.Attribute("name")
                        sm.Form = smElem.Attribute("form")
                        m.SousMenus.Add(sm)
                    Next
                Next
            Next
        End Function
     
        'Ajoute les menus / sous menus d'après une liste de groupe
        Private Sub FillTreeViewFromGroupe(treeView As TreeView, groupe As Groupe)
            treeView.Nodes.Clear()
            For Each m As Menu In groupe.Menus
                Dim n As New TreeNode(m.Name)
                treeView.Nodes.Add(n)
                n.Checked = False
                For Each sm As SousMenu In m.SousMenus
                    Dim n2 As New TreeNode(sm.Name)
                    n.Nodes.Add(n2)
                    n2.Checked = False
                Next
            Next
        End Sub
     
        'Coche les menus et sous menu d'un groupe d'après le contenu d'un fichier xml
        Private Sub CheckTreeViewFromGroupe(ByVal treeView As TreeView, groupeName As String)
            Dim groupes As List(Of Groupe) = GetGroupesFromXML(MenuXML)
            Dim groupe As Groupe = groupes.Find(Function(value As Groupe) value.Name = groupeName)
     
            For Each mNode As TreeNode In treeView.Nodes
                Dim mName As String = mNode.Text
                If groupe.Menus.Find(Function(value As Menu) value.Name = mName) IsNot Nothing Then
                    'Menu présent
                    Dim m As Menu = groupe.Menus.Find(Function(value As Menu) value.Name = mName)
                    mNode.Checked = True
                    For Each smnode As TreeNode In mNode.Nodes
                        Dim smName As String = smnode.Text
                        smnode.Checked = m.SousMenus.Find(Function(value As SousMenu) value.Name = smName) IsNot Nothing
                    Next
                Else
                    'Menu absent
                    mNode.Checked = False
                    For Each smnode As TreeNode In mNode.Nodes
                        smnode.Checked = False
                    Next
     
                End If
            Next
     
     
        End Sub
     
    End Class
    J'ai fortement hésité à te mettre une copie d'écran aussi

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    merci beaucoup et désoler pour l'imprime écran
    J'ai essayé votre méthode mais malheureusement elle n'est pas marché , bref il y'a autre chose , pourquoi tu as utiliser deux Treeview ??

  4. #4
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par rabso007 Voir le message
    pourquoi tu as utiliser deux Treeview ??
    En fait je pense que je me suis un peu mélanger..

    La TreeView1 correspond aux groupes dans MenuAdmin.xml.
    La TreeView2 correspond aux groupes dans Menu.xml.

    Dans mon code, au chargement du formulaire je charge les 2 Treeview avec le contenu du MenuAdmin.xml (avec des cases décochées), puis quand on sélectionne un élément dans la combobox ça coche les menus/sous menus dans la TreeView2 qui correspondent au Menu.xml..

    Je pense que le code nécessaire y est. Tu dois faire un peu de tri..

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    es-que je rajoute se code au code d'hier ou bien non !!
    je suis un peux perturber , en tout cas j'ai essayé avec et sans mais y'a pas de résultat

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    ah voila c'est bon le problème est résolue j'ai changer le Treeview 2 par 1 au niveau du Combobox

    es-que tu peux encore m'aider dans une autre fonction !!

  7. #7
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Remplace le code d'hier par celui la.

    Je te met en fichier joint le projet en entier pour que tu vois directement l'application.
    Fichiers attachés Fichiers attachés

  8. #8
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par rabso007 Voir le message
    es-que tu peux encore m'aider dans une autre fonction !!
    Allez c'est parti

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    Merci beaucoup

    je veux ajouter deux bouton
    le première pour "Valider"
    le deuxième pour "décocher"

    ==> si je coche ou je décoche les checkbox et je clique sur le bouton "Valider" le Menu.xml ( au niveau du groupe (stagaire ou User) dans le quelle j'ai fais les modification ) sera mise à jour selon les nouvelle valeur .

  10. #10
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Désolé j'ai du partir précipitamment.. et je dois repartir maintenant.
    Je regarderais un coup plus tard dans la journée.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    ok merci en tout cas pour votre aide

  12. #12
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Me revoila!

    Bon j'ai refait un projet car je ne suis pas sur le même poste qu'aujourd'hui.
    J'ai essayé d'appliquer la serialization des objets Groupe,Menu, et SousMenu pour que le chargement/sauvegarde des données soit plus aisée.

    Fichier XML type:
    Code xml : 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
    <?xml version="1.0" encoding="utf-8"?>
    <accueil xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <GROUPE name="User">
        <MENU name="Fournisseurs" form="frm_fournisseurs">
          <SMENU name="Liste des fournisseurs" form="frm_liste_fournisseurs" />
          <SMENU name="Ajouter un fournisseur" form="frm_ajouter_fournisseurs" />
        </MENU>
        <MENU name="Produits" form="frm_produits">
          <SMENU name="Liste des produits" form="frm_liste_produits" />
        </MENU>
      </GROUPE>
      <GROUPE name="Stagiaire">
        <MENU name="Fournisseurs" form="frm_fournisseurs">
          <SMENU name="Liste des fournisseurs" form="frm_liste_fournisseurs" />
        </MENU>
        <MENU name="Produits" form="frm_produits">
          <SMENU name="Liste des produits" form="frm_liste_produits" />
        </MENU>
      </GROUPE>
    </accueil>
    Le seul changement dans le fichier XML est l'ajoût de 2 attributs xmlns xsi et xmlns xsd à ta balise accueil pour permettre la lecture grâce à la serialization. Est ce un problème?

    Les nouvelles classes Groupe, etc.
    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
    Imports System.Xml.Serialization
     
    'Classe Groupes (balise "accueil")
    <XmlRoot("accueil")>
    Public Class Groupes
     
        <XmlElement("GROUPE")>
        Public Property groupes As New List(Of Groupe)
     
    End Class
     
    'Classe Groupe (balise "GROUPE")
    Public Class Groupe
        <XmlAttribute("name")>
        Public Property Name As String = ""
        <XmlElement("MENU")>
        Public Property Menus As New List(Of Menu)
     
        Sub New()
     
        End Sub
     
        Sub New(ByVal Name As String)
            Me.Name = Name
        End Sub
    End Class
     
    'Classe Menu (balise "MENU")
    Public Class Menu
        <XmlAttribute("name")>
        Public Property Name As String = ""
        <XmlAttribute("form")>
        Public Property Form As String = ""
        <XmlElement("SMENU")>
        Public Property SousMenus As New List(Of SousMenu)
     
        Sub New()
     
        End Sub
     
        Sub New(ByVal Name As String, ByVal Form As String)
            Me.Name = Name
            Me.Form = Form
        End Sub
    End Class
     
    'Classe SousMenu (balise "SMENU")
    Public Class SousMenu
        <XmlAttribute("name")>
        Public Property Name As String = ""
        <XmlAttribute("form")>
        Public Property Form As String = ""
     
        Sub New()
     
        End Sub
     
        Sub New(ByVal Name As String, ByVal Form As String)
            Me.Name = Name
            Me.Form = Form
        End Sub
    End Class
    Et enfin ton form:
    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    Imports System.IO
    Imports System.Xml.Serialization
     
    Public Class Form1
     
        Dim MenuXML As String = "Menu.xml"
        Dim MenuAdminXML As String = "MenuAdmin.xml"
        Dim groupesAdmin As Groupes = Deserialize(MenuAdminXML)
        Dim groupesAuth As Groupes = Deserialize(MenuXML)
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Remplir Treeview
            FillTreeViewFromGroupe(groupesAdmin.groupes.First)
     
            'Remplir Combobox
            ComboBoxProfile.DataSource = groupesAuth.groupes
            ComboBoxProfile.DisplayMember = "Name"
            ComboBoxProfile.ValueMember = "Name"
        End Sub
     
        Private Sub ComboBoxProfile_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxProfile.SelectedIndexChanged
            CheckTreeViewFromGroupe(ComboBoxProfile.SelectedItem)
        End Sub
     
        Private Sub ButtonValidate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValidate.Click
            Dim groupe As Groupe = FillGroupeFromTreeView()
     
            Dim groupes As New Groupes
     
            For Each g As Groupe In groupesAuth.groupes
                If g.Name <> groupe.Name Then
                    groupes.groupes.Add(g)
                Else
                    groupes.groupes.Add(groupe)
                End If
            Next
            Serialize(groupes, MenuXML)
     
        End Sub
     
     
        'Chargement des groupes d'un fichier xml
        Private Function Deserialize(ByVal filename As String) As Groupes
            Deserialize = Nothing
            Try
                Dim objStreamReader As New StreamReader(filename)
                Try
                    Dim p2 As New Groupes
                    Dim x As New XmlSerializer(GetType(Groupes))
                    Return x.Deserialize(objStreamReader)
                Catch ex As Exception
                    MsgBox("Chargement non effectué.")
                Finally
                    objStreamReader.Close()
                End Try
            Catch ex As Exception
                MsgBox("Fichier introuvable.")
            End Try
        End Function
     
        'Sauvegarde des groupes dans un fichier xml
        Private Sub Serialize(ByVal groupes As Groupes, ByVal filename As String)
            Try
                Dim objStreamWriter As New StreamWriter(filename)
                Try
                    Dim x As New XmlSerializer(GetType(Groupes))
                    x.Serialize(objStreamWriter, groupes)
                Catch ex As Exception
                    MsgBox("Sauvegarde non effectuée.")
                Finally
                    objStreamWriter.Close()
                End Try
            Catch ex As Exception
                MsgBox("Fichier introuvable.")
            End Try
        End Sub
     
     
        'Extrait le groupe affiché dans la Treeview
        Private Function FillGroupeFromTreeView() As Groupe
            Dim groupe = New Groupe
            groupe.Name = ComboBoxProfile.SelectedValue
            For Each n As TreeNode In TreeViewMenus.Nodes
                Dim m As New Menu(n.Text, n.Tag)
                If n.Checked Then groupe.Menus.Add(m)
                For Each n2 As TreeNode In n.Nodes
                    If n2.Checked Then m.SousMenus.Add(New SousMenu(n2.Text, n2.Tag))
                Next
            Next
            FillGroupeFromTreeView = groupe
        End Function
     
        'Remplit la Treeview à partir d'un groupe
        Private Sub FillTreeViewFromGroupe(ByVal groupe As Groupe)
            TreeViewMenus.Nodes.Clear()
            For Each m As Menu In groupe.Menus
                Dim n As New TreeNode(m.Name)
                n.Tag = m.Form
                TreeViewMenus.Nodes.Add(n)
                n.Checked = False
                For Each sm As SousMenu In m.SousMenus
                    Dim n2 As New TreeNode(sm.Name)
                    n2.Tag = sm.Form
                    n.Nodes.Add(n2)
                    n2.Checked = False
                Next
            Next
        End Sub
     
        'Cocher les noeuds du Treeview à partir d'un groupe
        Private Sub CheckTreeViewFromGroupe(ByVal groupe As Groupe)
            For Each mNode As TreeNode In TreeViewMenus.Nodes
                Dim mName As String = mNode.Text
                If groupe.Menus.Find(Function(value As Menu) value.Name = mName) IsNot Nothing Then
                    'Menu présent
                    Dim m As Menu = groupe.Menus.Find(Function(value As Menu) value.Name = mName)
                    mNode.Checked = True
                    For Each smnode As TreeNode In mNode.Nodes
                        Dim smName As String = smnode.Text
                        smnode.Checked = m.SousMenus.Find(Function(value As SousMenu) value.Name = smName) IsNot Nothing
                    Next
                Else
                    'Menu absent
                    mNode.Checked = False
                    For Each smnode As TreeNode In mNode.Nodes
                        smnode.Checked = False
                    Next
                End If
            Next
        End Sub
     
    End Class
    Je te remet le projet mis à jour en fichier joint.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    waw c'est impeccable se que vous faites là , vraiment je c'est pas comment te remercié pour votre effort
    merci beaucoup frère


    Après quelques essais j'ai remarqué un petit problème
    lorsque je modifier les autorité d'un groupe par exemple "Stagaire" et je clique sur "valider" tous marche trés bien jusqu'a maintenant mais aprés si je veux modifier un autre groupe "User" et je qulique ensuite sur "valider" le groupe "Stagaire" revient comme avant c'est à dire que je ne peux modifier qu'un seul groupe par Debug

  14. #14
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Effectivement.. Rajoute cette ligne:
    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
    Private Sub ButtonValidate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValidate.Click
            Dim groupe As Groupe = FillGroupeFromTreeView()
     
            Dim groupes As New Groupes
     
            For Each g As Groupe In groupesAuth.groupes
                If g.Name <> groupe.Name Then
                    groupes.groupes.Add(g)
                Else
                    groupes.groupes.Add(groupe)
                End If
            Next
            Serialize(groupes, MenuXML)
     
            groupesAuth = groupes '<--- Ajout
     
        End Sub

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    oui ça marche au niveau du fichier XML c'est a dire qu'elle est bien mise à jour , mais au niveau du Form quand je valide un groupe puis je passe à un autre puis je reviens je trouve les valeur de début .
    il y'a un autre chose , es-que c'est possible de cocher le checbox père automatiquement lorsque je coche l'un des des checbox fils ??

  16. #16
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par rabso007 Voir le message
    quand je valide un groupe puis je passe à un autre puis je reviens je trouve les valeur de début
    Ok et bien il faut encore rajouter une ligne..
    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
        Private Sub ButtonValidate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValidate.Click
            Dim groupe As Groupe = FillGroupeFromTreeView()
     
            Dim groupes As New Groupes
     
            For Each g As Groupe In groupesAuth.groupes
                If g.Name <> groupe.Name Then
                    groupes.groupes.Add(g)
                Else
                    groupes.groupes.Add(groupe)
                End If
            Next
            Serialize(groupes, MenuXML)
     
            groupesAuth = groupes
            ComboBoxProfile.DataSource = groupesAuth.groupes    '<-- Ajout
     
        End Sub
    Citation Envoyé par rabso007 Voir le message
    es-que c'est possible de cocher le checbox père automatiquement lorsque je coche l'un des des checbox fils
    Ajoute cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Private Sub TreeViewMenus_AfterCheck(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles TreeViewMenus.AfterCheck
            Dim node As TreeNode = e.Node
            'On regarde si le noeud existe et s'il est coché
            If node IsNot Nothing AndAlso node.Checked Then
                Dim parent = node.Parent
                'On regarde si le parent existe et s'il est décoché
                If parent IsNot Nothing AndAlso Not parent.Checked Then
                    'on le check
                    parent.Checked = True
                End If
            End If
        End Sub

  17. #17
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    désoler vraiment j'ai hante de poser beaucoup de question , le problème est résolue mais il reste un petit détaille maintenant quand je change le deuxième groupe et je clique sur valider tous marche bien sauf qu'il revient tout seul au premier groupe au niveau du combobox !!

  18. #18
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par rabso007 Voir le message
    désoler vraiment j'ai hante de poser beaucoup de question , le problème est résolue mais il reste un petit détaille maintenant quand je change le deuxième groupe et je clique sur valider tous marche bien sauf qu'il revient tout seul au premier groupe au niveau du combobox !!
    Y a pas de problème

    Une petite ligne de plus en plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            groupesAuth = groupes
            ComboBoxProfile.DataSource = groupesAuth.groupes
            ComboBoxProfile.SelectedItem = groupe    '<-- Ajout
        End Sub

  19. #19
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 33
    Par défaut
    merci beaucoup c'est génial se que vous faites

  20. #20
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    De rien

    N'hésite pas à jeter un coup d'oeil au code, c'est pas très compliqué.
    Sur Developpez.net il y a énormément d'infos disponibles sur les cours, forums, sources, tutos, articles, etc. Fais y un tour, tu apprendras plein de choses.

    Bon courage pour la suite de ton projet.

Discussions similaires

  1. [Débutant] xml vers Treeview
    Par rabso007 dans le forum VB.NET
    Réponses: 5
    Dernier message: 21/05/2012, 17h50
  2. [C#] xml et treeview
    Par K_!!! dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 04/07/2006, 09h33
  3. [C#] Problème chargement fichier xml dans treeview
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2006, 14h10
  4. [C#] Treeview et XML
    Par Mandotnet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/03/2006, 13h53
  5. Transformation XML-->XML en utilisant les treeview
    Par mmed dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/07/2005, 17h36

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