Вопрос

знаете ли вы какой-нибудь хороший пример, как создать ListView, который будет выглядеть и будет использовать те же методы, что и Windows Explorer.

копирование, вставка, отображение миниатюр??

Я должен использовать ListView, потому что я не могу разрешить пользователю изменять каталог, и я не могу отключить эту опцию в проводнике Windows (я имею в виду место, где я могу щелкнуть, чтобы перейти вверх или вниз или указать путь.

Это было полезно?

Решение

Я рекомендовал этот проект, никогда не слышал жалоб на это.Обратите внимание, что встраиваемый браузер доступен начиная с Vista, он обернут классом ExplorerBrowser, доступным в Пакет кода Windows API.

Имейте в виду, что такого рода решения создают множество зависимостей в вашем проекте.Подумайте о том, чтобы сопоставить эти затраты с простой реализацией openfiledialog's Событие FileOk и отмените нажатие кнопки OK, если вам не нравится путь.

Другие советы

Это нетривиальная задача, но вы можете взглянуть на этот проект.Это на VB.Net, но это может послужить источником вдохновения.

Я кое-что написал, но я не знаю, как добавить событие при нажатии на значок, чтобы получить путь к этому значку.

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

Как перестроить этот код ??

Вы можете использовать графику.drawImage для загрузки файла jog и создания из него эскиза.Это будет работать только для файлов изображений.

Чтобы получить эскизы других типов файлов, вы должны использовать интерфейс shell IExtractIcon.

Для копирования / вставки используйте DataFormats.Формат FileDrop с полными путями к файлам.


Готовую альтернативу смотрите в нашем Просмотр файла контроль.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top