你知道如何创建listView的好例子,它看起来和windows explorer的方法相同。
复制,粘贴,显示缩略图??
我必须使用listView,因为我无法允许用户更改目录,我无法在Windows资源管理器中禁用此选项(我的意思是我可以点击上下或放置路径的位置。
答案 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控件。