Non eliminerei la complessità di OpenFileDialog. Non è così facile crearne uno che funzioni davvero. Quando si crea il proprio, non è la finestra di dialogo "normale" e di conseguenza confonde gli utenti. Questo è vero anche se lo fai bene, il che è difficile. Quindi ti suggerisco di attenersi all'estensione di ciò che è già lì, piuttosto che scrivere qualcosa di nuovo.
Controllare this article for an extension of OFD che potrebbe/potrebbe essere modificato per fare esattamente quello che vuoi. C'è una callback che scrivi in C# che risponde alla selezione del percorso.
Correlato: FolderBrowserDialogEx è un'estensione simile su FolderBrowserDialog. Nonostante il nome, è possibile configurarlo per cercare file e cartelle. C'è un callback che viene richiamato quando qualcosa (una cartella, un file) è selezionato, e all'interno di quel callback puoi fare ciò che devi fare. Ad esempio, guarda all'interno dei file all'interno di una cartella e compila l'elenco dei file da visualizzare con solo quei file.
Un'altra opzione si potrebbe prendere in considerazione è il dialog library from Ookii. Questa è un'implementazione open source di OpenFileDialog e include i wrapper COM per tutte le nuove funzionalità di dialogo in Vista. Usando questa libreria puoi aprire Vista OpenFileDialog e ricevere eventi dall'interfaccia IFileDialogEvents, nel codice C#. Uno di questi eventi è OnFolderChange(). All'interno del gestore è possibile chiamare IFolder.GetFolder() che consente di ottenere un IShellItem, che fornisce la cartella in cui l'utente sta cambiando. Il prossimo passo sarebbe quello di catalogare e potenzialmente filtrare il set di file, che è un esercizio che lascerò al lettore ...
interessante! Lo controllerò domani. Grazie! – djcouchycouch