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]替换却能正常生成?
急急
我已经将那个文件跳过了,所以应该不是那个原因
展开
 我来答
百度网友dc91b32
2009-05-10 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
GetFiles()是获得该文件夹下的所有文件,包括飞图片格式的文件,所以得到的文件有可能不是图片格式,故Image.FromFile(k)加载会报错,

当报错的时候,你检查一下k的值,看看k到底是不是图片路径,或者直接加断点调试,

解决办法很多,你可以先判断一下文件是否是图片格式,或者直接在循环里面加一个try,

ps:一般图片文件夹都会包含一个“Thumbs.db”这个文件,这是个隐藏文件,记录图片缩略图的缓存,所以Image.FromFile(k)加载到这个文件肯定会报错,
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式