2009-04-22 24 views
6

Sto cercando la soluzione più semplice per implementare una finestra di dialogo Sfoglia cartella con caselle di controllo davanti alle directory nel mio progetto (C#) WinForms.Finestra di dialogo Sfoglia cartella con caselle di controllo?

Ho visto questo tipo di dialogo in Vista nel centro di backup. Era proprio come una normale finestra di dialogo Sfoglia cartelle, ma davanti a ogni cartella c'era una casella di controllo. Se hai controllato una cartella, tutte le cartelle e i file in esso contenuti sono stati controllati, mentre potresti ancora deselezionarli separatamente in seguito.

Se non esiste un controllo prefabbricato o altro, allora qual è il modo più semplice per: - Manipola una normale finestra di dialogo Sfoglia cartella per includere la funzionalità casella di controllo; oppure - Manipolare un controllo TreeView per utilizzare le icone Shell per i percorsi (quindi il sistema sistema corretto per Desktop, My Music, cartelle normali, file, ecc.) così posso costruirne uno da solo?

Nota: desidero che la finestra di dialogo/controllo mostri entrambe le cartelle e.

Grazie in anticipo per eventuali suggerimenti e suggerimenti. =)

risposta

4

Inizia con l'albero vew. (però dovrai prenderti cura di andare a prendere i bambini in modo dinamico).

Se non ti interessa lo spazio dei nomi di Explorer (ovvero con Pannello di controllo sotto Risorse del computer, o Desktop con cestino, Network Neigborhood e altre cose di seguito), e hai solo bisogno di file su unità con lettere di unità, puoi iniziare con l'enumerazione delle lettere di unità (utilizzando System.IO.Directory.GetLogicalDrives).

È possibile ottenere le icone della shell chiamando ExtendedFileInfo.GetIconForFilename dalla libreria ManagedWinapi (http://mwinapi.sourceforge.net/), che funziona sia per file che per cartelle.

0

Il modo più semplice per implementare qualcosa di simile sarebbe utilizzare un controllo TreeView standard con la proprietà CheckBoxes impostata su true. Dovresti anche essere in grado di utilizzare le immagini con esso se desideri aggiungere una piccola immagine di cartella accanto a ciascun nodo.

See this MSDN article for more info.

0

Il FolderBrowserDialog non supporta le caselle di controllo. Dai un'occhiata al controllo FolderView che mostra le caselle di controllo multistato accanto a cartelle e file.

Problemi correlati