datagridview绑定了数据表friends,数据表里面有“image”列,保存的是图片的绝对路径,我想在datagridview将这些路径显示成图片,该怎么做呢?

解决方案 »

  1.   

    能具体点吗?
    要用到模板列吗?我试了之后,还是显示红色X
    能直接用数据库里面的列吗?该怎么用Image?
    谢谢!
      

  2.   

    http://topic.csdn.net/t/20060217/21/4562504.html
    参照此贴
      

  3.   

    http://zhangjiankun880.blog.163.com/blog/static/135540320108276441954/
      

  4.   


    我的图片路径是随时都在改变的,就像我们的QQ头像,可是要怎么想QQ那样显示在列表中呢?
      

  5.   

    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显示的是数据库里面的路径的图片
      

  6.   


    //绑定到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];
                        }                    //}                 }
                }
      

  7.   

    datagridview中图片那一列格式设置为DataGridViewImageColumn  加载数据的时候,图片那一列把读出来的路径赋值给那一列 Image.FromFile(图片路径)
      

  8.   


    怎么把datagridview中图片那一列格式设置为DataGridViewImageColumn ?是不要显示数据库的列而添加
    DataGridViewImageColumn吗?
      

  9.   


    说得没错,要使用模板列,准确的说是单元格模块: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了。
      

  10.   

    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