Bonjour,
Bon voila la suite de mes problèmes avec le treeview (treeview et moi ça fait 2).
Sur mon ancien post je demandais de l'aide pour pouvoir charger le treeview du (C:\) sans les dossier protégés.
Le post a été résolut grâce à Wallace1 (encore une fois) sauf que le chargement s'en est trouvé très long (12s).
On me dit :
"Si tu veux accélérer le chargement des données, tu peux au début ne charger que les deux premiers niveaux de l'arborescence. Ensuite lorsque l'utilisateur déplie un nœud, tu vas chercher les deux sous-niveaux suivants, et ainsi de suite."
J'ai beau chercher sur d'autres forum et site, je ne trouve rien de concluant.
J'ai vu qu'on pouvait utiliser le "VirtualizingStackPanel.IsVirtualizing" (je sais même pas à quoi ça sert, c'est mal expliqué dans msdn.microsoft) et aussi la propriété "expand" mais je sais pas où les placer dans le code ni comment s'en servir.
Quelqu'un pour m'aider?
Voici mon 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 Imports System.IO Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub PopulateTreeView() Dim rootNode As TreeNode Dim info As New DirectoryInfo("C:\") If info.Exists Then rootNode = New TreeNode(info.Name) rootNode.Tag = info rootNode.Expand() GetDirectories(info.GetDirectories(), rootNode) TreeView1.Nodes.Add(rootNode) End If End Sub Private Sub GetDirectories(ByVal subDirs() As DirectoryInfo, ByVal nodeToAddTo As TreeNode) Dim aNode As TreeNode Dim subSubDirs() As DirectoryInfo Dim subDir As DirectoryInfo For Each subDir In subDirs aNode = New TreeNode(subDir.Name, 0, 0) aNode.Tag = subDir aNode.ImageKey = "folder" Try subSubDirs = subDir.GetDirectories() Catch e As UnauthorizedAccessException subSubDirs = Nothing End Try If Not subSubDirs Is Nothing Then If subSubDirs.Length <> 0 Then GetDirectories(subSubDirs, aNode) End If End If If Not subDir.Attributes = (FileAttributes.Hidden Or subDir.Attributes) Then nodeToAddTo.Nodes.Add(aNode) End If Next subDir End Sub Public Sub New() InitializeComponent() PopulateTreeView() End Sub 'New
Partager