Je ne voudrais pas rejeter la complexité de l'OpenFileDialog. Ce n'est pas si facile d'en construire un qui fonctionne vraiment. Lorsque vous créez le vôtre, ce n'est pas le dialogue "normal" et, par conséquent, cela crée de la confusion chez les utilisateurs. C'est vrai même si vous le faites bien, ce qui est difficile. Je vous suggère donc de ne pas prolonger ce qui existe déjà, plutôt que d'écrire quelque chose de nouveau.
Vérifiez this article for an extension of OFD qui pourrait/pourrait être modifié pour faire exactement ce que vous voulez. Il y a un rappel que vous écrivez en C# qui répond à la sélection du chemin.
En relation: FolderBrowserDialogEx est une extension similaire sur FolderBrowserDialog. Malgré le nom, vous pouvez le configurer pour rechercher des fichiers, ainsi que des dossiers. Il y a un rappel qui est appelé quand quelque chose (un dossier, un fichier) est sélectionné, et dans ce rappel vous pouvez faire ce que vous devez faire. Par exemple, jetez un coup d'œil dans les fichiers d'un dossier et remplissez la liste des fichiers à afficher uniquement avec ces fichiers.
Une autre option que vous pourriez envisager est le dialog library from Ookii. C'est une implémentation open source de OpenFileDialog, et elle inclut des wrappers COM pour toutes les nouvelles fonctionnalités de dialogue de Vista. En utilisant cette bibliothèque, vous pouvez ouvrir un Vista OpenFileDialog et recevoir des événements de l'interface IFileDialogEvents, en code C#. Un tel événement est OnFolderChange(). Dans le gestionnaire, vous pouvez appeler IFolder.GetFolder() qui vous donnera un IShellItem, ce qui vous donne le dossier vers lequel l'utilisateur change. L'étape suivante consisterait à détailler et potentiellement filtrer l'ensemble des fichiers, ce qui est un exercice que je laisserai au lecteur ...
intéressant! Je vais vérifier demain. Merci! – djcouchycouch