Tvexplorer : arborescence des répertoires le direxplorer revu et corrigé

Description

voilà , j'avais travaillé sur un ocx , le DirExplorer mais celui ci ne me plaisait pas beaucoup ;
en effet un gros problème existait a savoir l'incompatibilité de 2 DirExplorer dans un même projet...C'est pour cela que je me suis remis à la tache et que j'ai fait le TVEplorer...

Le TVExplorer n'est plus un ocx mais un class vous permettant simplement de transformer un simple Treeview en arborescence de répertoire...

Le TVExplore concerne certaines particularités du DirExplorer , notament la possibilité de faire démarrer l'arborescence à partir d'un autre chemin que le Bureau comme par exemple le Poste de Travail...une autre fonctionnalité est de pourvoir ouvrir un chemin dans l'arborescence par le code (ex : TVSub.TVPath = "c:\windows" )

Il possède en plus la gestion du Menu contextuel en automatique...et cela est paramétrable...

Pour l'utiliser , rien de plus simple (et c'est je pense ce qui fait la force que ce source) :
1) vous déclarez dans votre forme un variable comme cela :
Dim TVSub As New TVExplorer

2) ensuite ,dans le form_load, vous ajoutez les Treeviews que vous souaitez transformer en DirExplorer en une ligne :
Call TVSub.Add(TreeView1)
Call TVSub.Add(TreeView2)

la fonction Add admets plusieurs paramètres dont voici l'explication :
a - TV As TreeView :
le Treeview ke vous souhaitez transformer en DirExplore
b -Optional ByVal UseContextMenu As Boolean = False :
utilisation ou non du menu contextuel automatique
c - Optional ByVal TreeRoot As TypeRoot = Bureau :
début de l'arborescence
d - Optional ByVal ExpandPath As String = ""
chemin dans l'arborescence à ouvrir

hors mis le paramètre TV vous pouvez constater que tous les autres sont optionels !

Infos supplémentaires :
1 ) vous pouvez très bien , en cours d'utilisation , déclanché l'utilisation du menu contextuel automatique grace a la propriété TVUseContextMenu. Le paramètre attendu est le Treeview sur lequel vous souhaitez activer/désactiver l'utilisation du menu contextuel. Ce paramètre étant optionel, si il n'est pas renseigné, c'est le premier Treeview ajouté qui sera pri en compte
2 ) pour récupérer/renseigner le chemin de l'arborescence en cour d'execution vous pouvez utiliser la propriété TVPath fonctionnant de la même manière que la propriété précédente. Il faut savoir tout de même que si la propriété Tag d'une node n'est pas modifiée, elle contient par défaut le chemin du repertoire auquel elle fait référence...cela peut etre pratique si l'on fait un Node_click par exemple....

enfin voilà ....pour utiliser ce source , intégrez les class et les modules a vos projet, n'oublié pas le fichier ISHF_Ex.tlb et de le référencer...il doit d'ailleurs apparaitre avant le OLE Automation dans la liste des références , sinon vous aurez un problème avec le type GUID...

en rappel vous trouverez le code à utiliser dans vos Forms après ce commentaire (qui commence à etre concéquent ;-) )

Source / Exemple :


Option Explicit

'déclaration de la variable permettant de transformer un Treeview en DirExplorer
Dim TVSub As New TVExplorer

'quelques fonctions pratique fournie par le TVExplorer
Private Sub Command1_Click()
    TVSub.TVPath(TreeView1) = "c:\windows"
    MsgBox TVSub.TVPath
    MsgBox TVSub.TVPath(TreeView2)
End Sub

'ajout de Treeview à transformer en DirExplorer
Private Sub Form_Load()
    Call TVSub.Add(TreeView1, True)
    Call TVSub.Add(TreeView2, False, PosteDeTravail, App.Path)
End Sub

Conclusion :


merci encore à Renfield pour son source original dont le DirExplorer en était inspiré et dont le TVExplorer en découle forcément

Codes Sources