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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top