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
Partager