Bonjour


Mon formulaire contient un controle TreeView représentatif de l'arborescence des lecteurs dossiers sur mon ordinateur.

1- j'affecte aux noeuds de premier niveau les lecteurs(ready)
2- je lance une fonction pour attribuer les sous noeuds à chacun des noeuds du controle (j'utilise la fonction Explorer(TreeNode^ noeud) de la faq.

Je rencontre un problème pour faire déployer le TreewView pour pointer sur le noeud correspondant à un dossier donné.

Si le path de mon dossier est : "H:\folder1\folder2\folder3\folder4"

H:\ se déploie
H:\folder1 se déploie

mais pas les autres noeuds.

Quelqu'un pourrait-il me dire où est que je me...... ?
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
 
dossierDefaut = L"H:\\proimager\\Albums\\Portfolio";
 
treeView1->Nodes->Clear();
int i=0;
for each(DriveInfo^ disque in DriveInfo::GetDrives())
{
	if(disque->IsReady)
	{
		treeView1->Nodes->Add(disque->Name);
		Explorer(treeView1->Nodes[i++]);
	}
}
if(Directory::Exists(dossierDefaut))
{
	array<String^>^ dNd = dossierDefaut->Split('\\');
	for(int i=0;i<dNd->Length;i++)
	{
		// est ce que dNd[i] fini par le caractère ":" ?
		if(dNd[i]->EndsWith(":"))
		{
			for each(TreeNode^ t in treeView1->Nodes)
			{
				if(t->Text==dNd[i] + L"\\")
				{
					nd = t;
					Explorer(t);
					t->Expand();
					break;
				}
			}
		}
		else
		{
			for each(TreeNode^ t in nd->Nodes)
			{
				if(t->Text==dNd[i])
				{
					nd = t;
					Explorer(t);
			t->Expand();
					break;
				}
			}
		}
	}
}
else
	nd = treeView1->Nodes[0];
 
this->treeView1->SelectedNode = nd;