C# 动态生成PICTUREBOX的问题
publicvoidcpicbox(){inti=0;foreach(FileInfofileindir.GetFiles()){bb[i]=file.FullName;...
public void cpicbox()
{
int i = 0;
foreach (FileInfo file in dir.GetFiles())
{
bb[i] = file.FullName;
i++;
}
i = 1;
foreach (string k in bb )
{
if (k == null)
{ break; }
PictureBox pictureBox1 = new PictureBox();
pictureBox1.Image = Image.FromFile(k);
pictureBox1.Location = new System.Drawing.Point(12+i*100, 12);
pictureBox1.Size = new System.Drawing.Size(98, 98);
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
pictureBox1.TabIndex = 0;
pictureBox1.TabStop = false;
this.Controls.Add(pictureBox1);
i++;
}
问题是出现在pictureBox1.Image = Image.FromFile(k); 的k那里,不是说路径不对就是问是不是要创建新数组或者说内存不足,用bb[i]替换也是同样。
但是用bb[1]替换却能正常生成?
急急
我已经将那个文件跳过了,所以应该不是那个原因 展开
{
int i = 0;
foreach (FileInfo file in dir.GetFiles())
{
bb[i] = file.FullName;
i++;
}
i = 1;
foreach (string k in bb )
{
if (k == null)
{ break; }
PictureBox pictureBox1 = new PictureBox();
pictureBox1.Image = Image.FromFile(k);
pictureBox1.Location = new System.Drawing.Point(12+i*100, 12);
pictureBox1.Size = new System.Drawing.Size(98, 98);
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
pictureBox1.TabIndex = 0;
pictureBox1.TabStop = false;
this.Controls.Add(pictureBox1);
i++;
}
问题是出现在pictureBox1.Image = Image.FromFile(k); 的k那里,不是说路径不对就是问是不是要创建新数组或者说内存不足,用bb[i]替换也是同样。
但是用bb[1]替换却能正常生成?
急急
我已经将那个文件跳过了,所以应该不是那个原因 展开
1个回答
展开全部
GetFiles()是获得该文件夹下的所有文件,包括飞图片格式的文件,所以得到的文件有可能不是图片格式,故Image.FromFile(k)加载会报错,
当报错的时候,你检查一下k的值,看看k到底是不是图片路径,或者直接加断点调试,
解决办法很多,你可以先判断一下文件是否是图片格式,或者直接在循环里面加一个try,
ps:一般图片文件夹都会包含一个“Thumbs.db”这个文件,这是个隐藏文件,记录图片缩略图的缓存,所以Image.FromFile(k)加载到这个文件肯定会报错,
当报错的时候,你检查一下k的值,看看k到底是不是图片路径,或者直接加断点调试,
解决办法很多,你可以先判断一下文件是否是图片格式,或者直接在循环里面加一个try,
ps:一般图片文件夹都会包含一个“Thumbs.db”这个文件,这是个隐藏文件,记录图片缩略图的缓存,所以Image.FromFile(k)加载到这个文件肯定会报错,
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询