Bonjour @ tous & toutes,
Voici la version .Net du YommExplorer OCX.
Reprise des anciennes fonctionnalités et ajout de nouvelles :
Pour le DirExplorer (arborscence répertoires)
- véritables icônes ( + racourcis , + partage)
- choix de la racine (bureau, poste de travail...)
- possibilité d'ajout d'un "racourcis" sous la racine
- checkbox 3 états
- affichage de fichiers
- menu contextuel windows
- raffraichissement automatique lorsqu'un dossier/fichier est créé par une autre appli ou via l'explorateur Windows
- récupération des nodes via énumération
Pour le FileExplorer (affichage des fichiers)
- véritables icônes ( + racourcis , + partage)
- possibilité de lier automatique le FileExplorer à un DirExplorer
- plusieur modes d'affichages : Liste, Détails, Icones et Mosaïque (cf impression écran pour ce dernier mode)
- menu contextuel + interraction automatique lors d'action du type copier/coller , nouveau document etc...
- possibilité de filtrer par extension
- possibilité d'afficher/masquer les dossiers
- possibilité d'afficher/masquer les éléments cachés
- utilisation des racourcis clavier (CTR+C, CTR+V , F2 ...)
- checkbox 2 états
- en mode détail : possibilité de modifier les colonnes affichés par click droit sur l'entête
- gestion du tri ("réorganiser par" ou par click sur l'entête de colonne en mode détail)
- récupération des items via énumération
et j'en oublie peut être...
bref tout plein de chose pour faire un vrai navigation dans une appli...
Source / Exemple :
'-------------------------------------------------------
'Exemples DirExplorer
'-------------------------------------------------------
'exemple pour obtenir la node sélectionnée:
MsgBox(DirExplorer1.SelectedItem.Text)
'exemple pour obtenir les nodes cochées:
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
MsgForNodeChecked(DirExplorer1.Root)
End Sub
Private Sub MsgForNodeChecked(ByVal Node As YommExplorer.DirExplorerNode)
Dim NodeFille As YommExplorer.DirExplorerNode
For Each NodeFille In Node.Nodes
If NodeFille.IsExpanded = True Then
MsgForNodeChecked(NodeFille)
ElseIf NodeFille.CheckState = CheckState.Checked Then
MsgBox(NodeFille.Text)
End If
Next
If Node.CheckState = CheckState.Checked Then MsgBox(Node.Text)
End Sub
'-------------------------------------------------------
'Exemples FileExplorer
'-------------------------------------------------------
'exemple pour récupérer les fichiers
Dim fileitem As YommExplorer.FileExplorerItem
For Each fileitem In FileExplorer1.Items
Debug.Print(fileitem.Text)
Next
'exemple pour récupérer les items cochés
Dim fileitem As YommExplorer.FileExplorerItem
For Each fileitem In FileExplorer1.Items
If fileitem.Checked = True Then Debug.Print(fileitem.Text)
Next
Conclusion :
les notions abordées ici :
- héritage d'un controle pour en faire un contrôle perso
- héritage de type pour ajouter et/ou modifier des types (exemple : TriStateTreeNode hérite de Node mais permet des nodes avec checkbox 3 états)
- surchage de fonction (exemple : fonction New de la class ClsDirectory)
- subclassing
- traitement des icones, informations des fichiers etc...
- ajout d'icône dans le header d'un listview
- gestion du menu contextuel Windows et du menu nouveau
- gestion des interfaces : IUnknown, IShellDetails, IEnumIDList, IShellFolder, IcontextMenu, IcontextMenu2, IcontextMenu3, IShellExtInit, IDropTarget
- implémentation d'une propriété de type enumeration (exemple : FileExplorerItemEnumerable)
- gestion du FileSystemWatcher et des threads différents
et bien d'autres encore...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.