表单 - 将图片添加到ListView中的每个项目

时间:2017-03-23 21:45:59

标签: c# winforms listview

如何在C#Forms中将图片添加到ListView? 我的程序获取目录的所有子文件夹,并能够在ListView中显示名称 但是我无法在每个listview项目中添加文件夹图标 这是我到目前为止尝试的代码:

string storedir = 
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + 
"\\myfolder";

ImageList imgl = new ImageList();
//Get the folder icon from resources
imgl.Images.Add(Properties.Resources.folder);

DirectoryInfo dir = new DirectoryInfo(storedir);
foreach (DirectoryInfo getdirs in dir.GetDirectories("*.*")) {
    ListViewItem lItem = listView1.Items.Add(getdirs.Name, imgl.Images.Count - 1);
}


没有成功:

Screenshot

任何人都可以帮助我吗?

编辑:

现在有效。感谢@Gusman和@LarsTech! 我在表单中添加了一个ImageList控件并命名为" imgl"。然后我在ListView控件上将其设置为Small-和LargeImageList,最后我删除了

ImageList imgl = new ImageList();

谢谢!

1 个答案:

答案 0 :(得分:1)

正如Lars在评论中所说,你必须将LargeImageList属性设置为imagelist的引用

所以,像这样分配图像列表:

listView1.LargeImageList = imgl;

接下来,您必须添加基于0的图像索引。在你的imagelist中0表示第一张图片,1秒等等。这样的事情(无需通过指定最后一个索引访问列表中的最后一张图片):

foreach (DirectoryInfo getdirs in dir.GetDirectories("*.*")) {
    ListViewItem lItem = listView1.Items.Add(getdirs.Name, 0);