ListView作为Windows资源管理器

时间:2010-03-11 09:17:19

标签: c# listview windows-explorer

你知道如何创建listView的好例子,它看起来和windows explorer的方法相同。

复制,粘贴,显示缩略图??

我必须使用listView,因为我无法允许用户更改目录,我无法在Windows资源管理器中禁用此选项(我的意思是我可以点击上下或放置路径的位置。

4 个答案:

答案 0 :(得分:2)

我一直在推荐this project,从未听过有关此事的投诉。请注意,自Vista以来可以使用嵌入式浏览器,它由Windows API Code Pack中提供的ExplorerBrowser类包装。

请注意,这些解决方案会为您的项目带来很多依赖关系。考虑通过简单地实现OpenFileDialog的FileOk event来衡量该成本,如果您不喜欢该路径,则取消单击确定按钮。

答案 1 :(得分:1)

这不是一项微不足道的任务,但你可以看看this project。它在VB.Net中,但它可以作为灵感来源。

答案 2 :(得分:1)

我写了一些内容,但我不知道如何在点击图标上添加事件以获取此图标的路径。

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

如何重建此代码??

答案 3 :(得分:0)

您可以使用Graphics.DrawImage加载jog文件并从中创建缩略图。这仅适用于图像文件。

要获取其他文件类型的缩略图,必须使用shell IExtractIcon接口。

对于复制/粘贴,请使用DataFormats.FileDrop格式以及文件的完整路径。


有关现成的替代方案,请参阅我们的FileView控件。