Bonjour,
Je suis débutante en vb.net.Quand je check mon nœud père tous les noeuds fils sont checkés(je n'utilise pas de récursivité) mais seulement sa prend au moins 25 s pour m'afficher les infos(extraite de l'active directory) dans une listview,j’aimerais une solution pour pouvoir optimiser le traitement.

merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 Dim tnode As TreeNode
        For Each tnode In e.Node.Nodes
          tnode.Checked = e.Node.Checked
        Next
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
 For i = 0 To TreeView1.Nodes(0).GetNodeCount(True) - 1
 
            If TreeView1.Nodes(0).Nodes(i).Checked Then
 
                Dim myCurrentPath As New TreeNode
                myCurrentPath = TreeView1.Nodes(0).Nodes(i)
                Dim ldap As String = myCurrentPath.Tag
                Dim PEntry As New DirectoryEntry(ldap)
                Dim nbr_pc As DirectorySearcher = New DirectorySearcher()
 
                Dim nuevoldap As String = myCurrentPath.Tag
                Dim ParentEntry As New DirectoryEntry(nuevoldap)
                Dim num_user As DirectorySearcher = New DirectorySearcher()
                Dim nbre_user As Integer = 0
                Dim nbre_pc As Integer = 0
 
                Dim Ch_lentry As New DirectoryEntry(ldappaths)
                Dim nb_print_search As DirectorySearcher = New DirectorySearcher()
                nb_print_search.PropertiesToLoad.Add("name")
                Dim nb_pr As Integer = 0
                nbr_pc.SearchRoot = PEntry
                nbr_pc.Filter = "(&(objectclass=computer))"
                nbr_pc.SearchScope = SearchScope.Subtree
 
 
                For Each resultat1 As System.DirectoryServices.SearchResult In nbr_pc.FindAll
                    PEntry = resultat1.GetDirectoryEntry
                    nbre_pc = nbre_pc + 1
                Next
 
                num_user.SearchRoot = ParentEntry
                num_user.Filter = "(objectclass=user)"
                num_user.SearchScope = SearchScope.Subtree
                For Each resultat1 As System.DirectoryServices.SearchResult In num_user.FindAll
 
                    ParentEntry = resultat1.GetDirectoryEntry
 
                    nbre_user = nbre_user + 1
                Next
 
                Dim lvi As ListViewItem = New ListViewItem(New String() {TreeView1.Nodes(0).Nodes(i).Text, nbre_user, nbre_pc})
                ListView3.Items.Add(lvi)
 
                ParentEntry = Nothing
 
            End If
 
        Next