datagridview中显示图片的问题! 图片没有显示出来!显示的红色差!

超凡 2012-05-22 01:37:06
请大伙帮我看下代码,我调试过了,目录中的图片都是存在的,路径也没错!

只是图片格式不一!

有*.png、gif、jpg多种格!

winform程序! 别发asp.net的东西来!


DataGridViewImageColumn image = new DataGridViewImageColumn();
image.ImageLayout = DataGridViewImageCellLayout.Zoom;
image.HeaderText = "图片描述";
image.Name = "图片描述";
image.Width = 80;
this.dgview_Lesson.Columns.Add(image);

for (int i = 0; i < this.dgview_Lesson.Rows.Count; i++)
{
L_Lesson Info = Lessonlist[i] as L_Lesson;
if (System.IO.File.Exists(Path.GetDirectoryName(Application.ExecutablePath) + "\\Lesson\\" +
Path.GetFileName(Info._Image.ToString())))
{
this.dgview_Lesson["图片描述", i].Value = Image.FromFile(Path.GetDirectoryName(
Application.ExecutablePath) + "\\Lesson\\" + Path.GetFileName(Info._Image.ToString()));

}

}




显示出来全是差差!
...全文
234 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
macooidle 2012-05-22
  • 打赏
  • 举报
回复

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DataGridViewImageCell imgCell = dataGridView1.Rows[i].Cells[0] as DataGridViewImageCell;

imgCell.Value = Image.FromFile(dt.Rows[i]["imageurl"].ToString());
}

好像没啥问题
xb12369 2012-05-22
  • 打赏
  • 举报
回复
我做了个测试:我直接在datagridview中绑定一张图片,显示红X

后台代码中加载:
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1["d", 0].Value = new Bitmap(@"C:\Users\xiebin\Desktop\common\1.jpg");
}


成功显示!

ps:在dgv中显示图片的列明为d
wanghui0380 2012-05-22
  • 打赏
  • 举报
回复
上面代码没看出啥问题,你下断点检查一下Image.FromFile处的路径是否正确

我个人不喜欢这种方式完成,介绍你一种更为标准的方式,让你代码看起来更流程一些
数据绑定前操作

DataGridViewImageColumn image = new DataGridViewImageColumn();
image.ImageLayout = DataGridViewImageCellLayout.Zoom;
image.HeaderText = "图片描述";
image.Name = "图片描述";
//把image和数据源属性绑定起来
image.DataPropertyName="_Image";
image.Width = 80;
this.dgview_Lesson.Columns.Add(image);

//因为原始数据源不是二进制流,只是string,所以需要在显示的处理转换,此处定制cellFormart显示转换事件
this.dgview_Lesson.CellFormatting += new DataGridViewCellFormattingEventHandler(dgview_Lesson_CellFormatting);



void dgview_Lesson_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgview_Lesson.Columns[e.ColumnIndex].Name == "图片描述")
{
if (e.Value != null)
{
//处理你自己的过程,初始进入e.value是string,返回是image
e.value=Image.FromFile(e.value);
}
}
}
bdmh 2012-05-22
  • 打赏
  • 举报
回复
说明报错了,调试吧,你这代码放到哪里了,如果绘制图,我会在cellpainting事件中做

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧