C#-将图像加载到imagelist和listview中
我已经得到了一个程序,我的工作加载一些图片,并显示在一个列表视图后,使用openfiledialog。我现在要做的是进一步,从应用程序目录中的“图标”目录自动加载图像。我不太确定该怎么做,所以我要把我当前的代码粘贴到这里,然后从那里开始工作C#-将图像加载到imagelist和listview中,c#,winforms,image,listview,C#,Winforms,Image,Listview,我已经得到了一个程序,我的工作加载一些图片,并显示在一个列表视图后,使用openfiledialog。我现在要做的是进一步,从应用程序目录中的“图标”目录自动加载图像。我不太确定该怎么做,所以我要把我当前的代码粘贴到这里,然后从那里开始工作 private void loadImageLibraryToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Multiselect = true
private void loadImageLibraryToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.Multiselect = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (openFileDialog1.FileNames != null)
{
for (int i = 0; i < openFileDialog1.FileNames.Length; i++)
{
addImage(openFileDialog1.FileNames[i]);
}
}
else
addImage(openFileDialog1.FileName);
}
}
private void addImage(string imageToLoad)
{
if (imageToLoad != "")
{
imageList1.Images.Add(Image.FromFile(imageToLoad));
listView1.BeginUpdate();
listView1.Items.Add(imageToLoad, baseValue++);
listView1.EndUpdate();
}
}
private void loadImageLibraryToolStripMenuItem\u单击(对象发送方,事件参数e)
{
openFileDialog1.Multiselect=true;
如果(openFileDialog1.ShowDialog()==DialogResult.OK)
{
if(openFileDialog1.FileNames!=null)
{
for(int i=0;i
编辑以澄清:提供的代码显示了如何在listview控件中加载和显示图像。我现在要做的是启动应用程序后,从programs目录中的文件夹自动加载图像,然后在listview中显示它们 在没有IDE的情况下从我的头上掉下来,所以可能会有错误!试试这个
var files = System.IO.Directory.GetFiles(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + "\\icons")
文件将是一个字符串数组,其中包含目录中的所有文件,然后您可以使用该数组按上述方式循环这些文件
openFileDialog1.FileNames
图标前可能不需要\号,我不记得GetDirectoryName是否从路径中删除尾随\号
您还可以将筛选器传递给GetFiles,以仅返回某些文件类型
嗯
编辑:我已经编辑了上面的代码以供使用
System.Windows.Forms.Application.ExecutablePath
而不是
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
在测试代码时,现在我可以访问IDE了,似乎CodeBase属性在路径前面加了file://,这导致我的IDE出现了一个错误
不支持URI格式
代码现在在我的IDE中工作,您需要确保您的图标目录与可执行文件位于同一目录中,因此在我的情况下…bin\debug\
尝试一下,如果仍然失败,请告诉我 我们能假设这是winforms吗?为便于将来参考,请记住c#只是一种语言,人们还需要了解平台,即WinForms、WPF、Silverlight、ASP.NET等。对不起,是的,这是WinForms。您能否澄清一点,您只是问如何将图像从专用目录加载到应用程序的ListView中,我尝试使用files变量。我所做的是在form_load事件中,我对文件中的每个项使用foreach循环,并使用参数'item'添加图像,但一旦启动程序,它就会耗尽内存。我不知道我哪里出了问题,因为现在,为了测试,我在文件夹里有一张图片。哇,这很好用。如果我意识到那段代码也在那里,我们可能不会经历所有这些麻烦。