C# winform 关于datagridview显示图片的问题 datagridview绑定了数据表friends,数据表里面有“image”列,保存的是图片的绝对路径,我想在datagridview将这些路径显示成图片,该怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能具体点吗?要用到模板列吗?我试了之后,还是显示红色X能直接用数据库里面的列吗?该怎么用Image?谢谢! http://topic.csdn.net/t/20060217/21/4562504.html参照此贴 http://zhangjiankun880.blog.163.com/blog/static/135540320108276441954/ 我的图片路径是随时都在改变的,就像我们的QQ头像,可是要怎么想QQ那样显示在列表中呢? DataGridViewImageColumn img_column = new DataGridViewImageColumn(); dataGridView1.Columns.Add(img_column); img_column.HeaderText = "image"; img_column.Name = "image"; img_column.Image = System.Drawing.Image.FromFile(pictureBox1.ImageLocation.ToString());我这样写还是出现红色X,picturebox1显示的是数据库里面的路径的图片 //绑定到DataGridView private void BindDategridview() { dataGridView1.Rows.Clear(); dataGridView1.DataSource = null; //dataGridView1.Rows.Add(5); //DataSet ds = Bll.GetList("Cus_Id='" + cmbsgbw.Text + "'"); DataSet ds = Bll.GetList("Cus_Id='" + Detail.cuid + "'"); if (ds.Tables[0].Rows.Count > 0) { dataGridView1.Rows.Add(ds.Tables[0].Rows.Count); string[] str = new string[23]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { for (int k = 0; k < str.Length; k++) { str[k] = ds.Tables[0].Rows[i].ItemArray[k].ToString(); //if (str[k] == "0") // str[k] = false.ToString(); //else if (str[k] == "1") // str[k] = true.ToString(); string s = Class_Path.position + "\\ysimage\\" + ds.Tables[0].Rows[i]["XZ_bianhao"].ToString() + ".jpg"; str[5] = s; } //for (int p = 0; p < dataGridView1.Rows.Count; p++) //{ for (int q = 0; q < dataGridView1.Columns.Count; q++) { if (q == 5) dataGridView1.Rows[i].Cells[5].Value = Image.FromFile(str[q]); else dataGridView1.Rows[i].Cells[q].Value = str[q]; } //} } } datagridview中图片那一列格式设置为DataGridViewImageColumn 加载数据的时候,图片那一列把读出来的路径赋值给那一列 Image.FromFile(图片路径) 怎么把datagridview中图片那一列格式设置为DataGridViewImageColumn ?是不要显示数据库的列而添加DataGridViewImageColumn吗? 说得没错,要使用模板列,准确的说是单元格模块:1、先扩展定义自己要使用的单元格类: public class DataGridViewTextBoxCellEx : DataGridViewTextBoxCell { public DataGridViewTextBoxCellEx() { } protected override void Paint(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts) { //base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts); if (value != null && value.ToString() != "") { Image img=Image.FromFile(value.ToString()); if(img!=null) { graphics.DrawImage(img, cellBounds); } } } }2、更改列的CellTemplate 属性 :DataGridViewColumn column = dataGridView1.Columns[1];//换成你实际的列DataGridViewCell cell =new DataGridViewTextBoxCellEx();column.CellTemplate = cell;这样就OK了。 http://social.microsoft.com/Forums/zh-CN/2212/thread/ffd27d9b-2a0b-4893-8896-1e7a594baea5http://hi.baidu.com/%C8%ED%BC%FE%CD%F8%C2%E7%B4%BF%BC%BC%CA%F5/blog/item/083466ed53d4d12427979161.htmlhttp://wenku.baidu.com/view/494d880d844769eae009eda5.html 请问组件和类的区别 access 压缩修复数据库出错 C# 邮件发送问题 菜鸟问题! out用法的问题,在线等呢 C#编写的珠宝软件,请多指教。 c#入门问题 CS0234: 命名空间“System”中不存在类型或命名空间名称“Dada”是什么意思? 想用VWD做一个图书管理的程序,请大人们给点意见。 WPF 模板列设置cell的焦点 怎么将时间格式化成"yyyy-MM-dd HH:mm:ss" 学C#总是迷迷糊糊的
要用到模板列吗?我试了之后,还是显示红色X
能直接用数据库里面的列吗?该怎么用Image?
谢谢!
参照此贴
我的图片路径是随时都在改变的,就像我们的QQ头像,可是要怎么想QQ那样显示在列表中呢?
dataGridView1.Columns.Add(img_column);
img_column.HeaderText = "image";
img_column.Name = "image";
img_column.Image = System.Drawing.Image.FromFile(pictureBox1.ImageLocation.ToString());我这样写还是出现红色X,picturebox1显示的是数据库里面的路径的图片
//绑定到DataGridView
private void BindDategridview()
{
dataGridView1.Rows.Clear();
dataGridView1.DataSource = null;
//dataGridView1.Rows.Add(5);
//DataSet ds = Bll.GetList("Cus_Id='" + cmbsgbw.Text + "'");
DataSet ds = Bll.GetList("Cus_Id='" + Detail.cuid + "'");
if (ds.Tables[0].Rows.Count > 0)
{
dataGridView1.Rows.Add(ds.Tables[0].Rows.Count);
string[] str = new string[23];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int k = 0; k < str.Length; k++)
{
str[k] = ds.Tables[0].Rows[i].ItemArray[k].ToString();
//if (str[k] == "0")
// str[k] = false.ToString();
//else if (str[k] == "1")
// str[k] = true.ToString();
string s = Class_Path.position + "\\ysimage\\" + ds.Tables[0].Rows[i]["XZ_bianhao"].ToString() + ".jpg";
str[5] = s;
}
//for (int p = 0; p < dataGridView1.Rows.Count; p++)
//{
for (int q = 0; q < dataGridView1.Columns.Count; q++)
{
if (q == 5)
dataGridView1.Rows[i].Cells[5].Value = Image.FromFile(str[q]);
else
dataGridView1.Rows[i].Cells[q].Value = str[q];
} //} }
}
怎么把datagridview中图片那一列格式设置为DataGridViewImageColumn ?是不要显示数据库的列而添加
DataGridViewImageColumn吗?
说得没错,要使用模板列,准确的说是单元格模块:1、先扩展定义自己要使用的单元格类: public class DataGridViewTextBoxCellEx : DataGridViewTextBoxCell
{
public DataGridViewTextBoxCellEx()
{
} protected override void Paint(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
//base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts); if (value != null && value.ToString() != "")
{
Image img=Image.FromFile(value.ToString());
if(img!=null)
{
graphics.DrawImage(img, cellBounds);
}
}
}
}
2、更改列的CellTemplate 属性 :DataGridViewColumn column = dataGridView1.Columns[1];//换成你实际的列
DataGridViewCell cell =new DataGridViewTextBoxCellEx();
column.CellTemplate = cell;
这样就OK了。