【发布时间】:2019-09-25 14:11:37
【问题描述】:
我正在开发一款软件,它可以比较 meme 并帮助用户在他们的计算机上组织 meme。作为其中的一部分,我使用Windows.Forms 来构建用户界面。此 UI 允许用户添加要检查图像的文件夹,可以将其与一组已知的 meme 模板进行比较。
当我尝试向用户展示找到的图像时,我的问题就出现了。为此,我使用ListView 和属性LargeImageList 来包含图像的元组和图像文件的名称。
这是有问题的代码:
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
var ic = new ImageCollection();
var fbd = new FolderBrowserDialog();
fbd.Description = "Select meme folder or image.";
if (fbd.ShowDialog() == DialogResult.OK)
{
string[] files = Directory.GetFiles(fbd.SelectedPath);
foreach (var file in files)
{
if (!ic.CheckIfImage(file)) continue;
imageList1.Images.Add(Image.FromFile(file));
}
foreach (var file in files)
{
listView1.Items.Add($"{Path.GetFileNameWithoutExtension(file)}", i++);
}
}
}
This 是用户首次加载到文件夹时看到的示例。当用户尝试加载另一个文件夹this 时。它显示第一个文件夹中的图像,以及第二个文件夹中的图像文件的名称。
有人知道这个问题的解决方法吗?为了解决这个问题,我尝试了多种选择。从尝试清除用于包含图像的ImageList,到尝试控制ListView 何时更新。这些都没有奏效。我也试过用谷歌搜索这个问题,但没有找到解决办法。
提前谢谢你。
【问题讨论】:
-
你把里面的子列表清空了吗? imageList1.Images?
-
@Pramuka 是的,我已经尝试清空子列表
标签: c# winforms listview imagelist