Pregunta

¿Conoce alguna buen ejemplo de cómo crear ListView que se verá y tiene los mismos métodos que el Explorador de Windows.

copiar, pegar, mostrar miniaturas ??

Debo utilizar Listview porque no puedo permitir al usuario cambiar de directorio, y no puedo desactivar esta opción en Windows Explorer (me refiero al lugar en el que pueden hacer clic para ir hacia arriba o hacia abajo o poner ruta.

¿Fue útil?

Solución

He estado recomendando este proyecto , nunca había oído una queja sobre eso. Tenga en cuenta que un navegador embebido está disponible desde Vista, que está envuelto por la clase ExplorerBrowser disponible en el Código paquete de API de Windows .

Tenga en cuenta que este tipo de soluciones puso un gran número de dependencias en su proyecto. Considere un peso que el costo contra la simple aplicación de la OpenFileDialog FileOk evento y cancelando el botón Aceptar Haga clic si no te gusta el camino.

Otros consejos

No es una tarea trivial, pero se puede echar un vistazo a este proyecto . Es en VB.Net pero podría servir como fuente de inspiración.

he escrito algo, pero no sé cómo añadir eventos al hacer clic en el icono para obtener la ruta de este icono.

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

Cómo reconstruir el código ??

Puede utilizar Graphics.DrawImage para cargar el archivo de trote y crear una miniatura de ella. Esto sólo funcionará para los archivos de imagen.

Para obtener imágenes en miniatura de otros tipos de archivo, debe utilizar la interfaz de shell IExtractIcon.

Para copiar / pegar, utilice el formato DataFormats.FileDrop con rutas completas de los archivos.


Por una alternativa ya hecha, consulte nuestra FileView control.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top