ListView come windows explorer
-
19-09-2019 - |
Domanda
fai a sapere nulla di buono esempio come creare listView che avrà un aspetto e ha gli stessi metodi come Windows Explorer.
questa pagina, copia, visualizzare le miniature ??
devo usare listView perché non posso permettere all'utente di cambiare directory, e non riesco a disattivare questa opzione in Windows Explorer (mi riferisco al posto dove posso cliccare per andare verso l'alto o verso il basso o il percorso messo.
Soluzione
Sono stato raccomandato questo progetto , mai sentito una denuncia circa esso. Si noti che un browser embeddable 'disponibile da Vista, è avvolto dalla classe ExplorerBrowser disponibile nel API di Windows Codice Confezione .
Attenzione che questo tipo di soluzioni messo un sacco di dipendenze nel progetto. Considerare pesatura costo contro semplicemente attuazione del OpenFileDialog FileOk evento e annullando il pulsante OK clic se non ti piace il percorso.
Altri suggerimenti
Non è un compito banale, ma è possibile dare un'occhiata al questo progetto . E 'in VB.Net ma potrebbe servire come fonte di ispirazione.
ho scritto qualcosa, ma non so come aggiungere eventi al clic sull'icona per ottenere il percorso di questa icona.
path = folderBrowserDialog1.SelectedPath;
ImageList imageList1 = new ImageList();
imageList1.ImageSize = new Size(256, 256);
imageList1.ColorDepth = ColorDepth.Depth24Bit;
string[] iconFiles = Directory.GetFiles(path, "*.jpg");
foreach (string iconFile in iconFiles)
{
try
{
imageList1.Images.Add(Image.FromFile(iconFile));
}
catch
{
MessageBox("Error","");
}
}
this.listView1.View = View.LargeIcon;
this.listView1.LargeImageList = imageList1;
for (int j = 0; j < imageList1.Images.Count; j++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = j;
this.listView1.Items.Add(item);
}
Come ricostruire questo codice ??
È possibile utilizzare Graphics.DrawImage per caricare il file jog e creare una miniatura fuori di esso. Questo funziona solo per i file di immagine.
Per ottenere le miniature di altri tipi di file, è necessario utilizzare l'interfaccia della shell IExtractIcon.
Per la copia / incolla, utilizzare il formato DataFormats.FileDrop con tutti i percorsi dei file.
Per un'alternativa ready-made, vedere il nostro FileView controllo.