首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-11-07 
datagridview中显示图片的问题! 图片没有显示出来!显示的红色差!请大伙帮我看下代码,我调试过了,目录中的

datagridview中显示图片的问题! 图片没有显示出来!显示的红色差!
请大伙帮我看下代码,我调试过了,目录中的图片都是存在的,路径也没错! 

只是图片格式不一! 

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

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

SQL code
       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()));                                   }            }
 


显示出来全是差差!

[解决办法]
说明报错了,调试吧,你这代码放到哪里了,如果绘制图,我会在cellpainting事件中做
[解决办法]
上面代码没看出啥问题,你下断点检查一下Image.FromFile处的路径是否正确

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

C# code
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);                }                      }        }
[解决办法]
我做了个测试:我直接在datagridview中绑定一张图片,显示红X;

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

热点排行