Question

Connaissez-vous un bon exemple comment créer listView qui se penchera et a les mêmes méthodes que l'explorateur Windows.

copier, coller, les vignettes d'affichage ??

Je dois utiliser listView parce que je ne peux pas permettre à l'utilisateur de changer de répertoire, et je ne peux pas désactiver cette option dans l'explorateur Windows (je veux dire l'endroit où je peux cliquer pour aller vers le haut ou vers le bas ou le chemin mis.

Était-ce utile?

La solution

J'ai recommandé ce projet , jamais entendu une plainte il. Notez qu'un navigateur intégrable est disponible depuis Vista, il est enveloppé par la classe ExplorerBrowser disponible dans le code API Windows pack .

Méfiez-vous que ce genre de solutions a mis beaucoup de dépendances dans votre projet. Pensez à peser que le coût contre la mise en œuvre simplement FileOk événement et l'annulation sur le bouton OK clic si vous ne voulez pas le chemin.

Autres conseils

Il est pas une tâche triviale, mais vous pouvez jeter un oeil à ce projet . Il est en VB.Net mais il pourrait servir de source d'inspiration.

J'ai écrit quelque chose, mais je ne sais pas comment ajouter événement, cliquez sur l'icône pour obtenir le chemin de cette icône.

    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);               
}

Comment reconstruire ce code ??

Vous pouvez utiliser Graphics.DrawImage pour charger le fichier de jogging et de créer une vignette hors de lui. Cela ne fonctionnera que pour les fichiers image.

Pour obtenir les vignettes des autres types de fichiers, vous devez utiliser l'interface IExtractIcon shell.

Pour copier / coller, utilisez le format DataFormats.FileDrop avec les chemins complets des fichiers.


Pour un ready-made alternatif, consultez notre contrôle FileView .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top