ListView как проводник Windows - PullRequest
2 голосов
/ 11 марта 2010

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

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

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

Ответы [ 4 ]

2 голосов
/ 11 марта 2010

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

Остерегайтесь того, что решения такого рода создают множество зависимостей в вашем проекте. Подумайте о том, чтобы сопоставить эти затраты с простой реализацией события FileOk OpenFileDialog и отменой нажатия кнопки ОК, если вам не нравится путь.

1 голос
/ 11 марта 2010

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

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

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

1 голос
/ 11 марта 2010

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

0 голосов
/ 11 марта 2010

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

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

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


Готовую альтернативу см. В нашем FileView элементе управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...