C# - 将图像加载到图像列表和列表视图
问题描述:
我已经得到了一个程序我正在使用openfiledialog之后加载一些图片并在列表视图中显示它们。我现在想要做的是进一步进一步从应用程序目录中的目录'图标'自动加载图像。林也不太清楚如何去了解它,所以我要去贴在这里我当前的代码,并从那里工作了......C# - 将图像加载到图像列表和列表视图
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();
}
}
编辑澄清:提供的代码演示了如何加载和显示图像在一个listview控件中。我现在想要做的是在启动应用程序时,从程序目录中的文件夹自动加载图像,然后在列表视图中显示它们。
答
在没有IDE的情况下,我可能会出现错误!试试这个
var files = System.IO.Directory.GetFiles(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + "\\icons")
文件将包含在目录中的所有文件的字符串数组,然后可以循环如你有以上使用数组
openFileDialog1.FileNames
的\可能不会图标之前需要,我不记得GetDirectoryName是否会从路径中删除尾部的\。
您还可以将过滤器传递给GetFiles以仅返回某些文件类型。
HTH
编辑:我已编辑上面的代码中使用
System.Windows.Forms.Application.ExecutablePath
而不是
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
在现在,我有机会获得一个IDE测试代码似乎代码库property prepends path with file:///导致我的IDE崩溃,并报出错误说
种URI格式不被支持
代码现在在我的IDE,你需要确保你的图标目录是在相同的目录中的可执行所以在我的情况....斌\调试\
试试这个,如果它仍然不能让我知道!
我们可以假设这是winforms吗?为了将来的参考,请记住,c#只是*语言*,人们也需要了解该平台,即WinForms,WPF,Silverlight,ASP.NET等。 – slugster 2010-09-02 22:39:29
对不起,是的,这是winforms。 – Rekar 2010-09-02 22:43:11
你能澄清一点吗,你只是问你如何将图像从私人应用程序的目录加载到你的应用程序? – 2010-09-02 22:54:02