在DataGridView中显示:图片、姓名
这两列怎么动态显示??
求解!!

解决方案 »

  1.   

    什么叫动态显示?是用程序实现显示么?其实你可以在dgv的编辑模式弄两个列,一列是图片,一列是名字。这时在窗体的如Form1.Designer.cs这个类里就有代码自动生成了。你就模仿它写就行。
    不知道我说的是不是你问的问题
      

  2.   

    就是从数据库中查处的图片和姓名显示到dgv上就可以了
      

  3.   

    添加两列private void dataGridview1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)   
    {   
      if (dataGridview1.Columns[e.ColumnIndex].Name.Equals("Image"))   
      {   
      string path = e.Value.ToString();   
      e.Value = GetImage(path);   
      }   
    }   
    public System.Drawing.Image GetImage(string path)   
    {   
      System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);   
      System.Drawing.Image result = System.Drawing.Image.FromStream(fs);     fs.Close();     return result;   }   
    使用DataGridViewImageColumn   
    DataGridViewImageColumn column = new DataGridViewImageColumn();   
    dataGridView1.Columns.Add(column);   
    column.HeaderText = "图片";   
    column.Image = System.Drawing.Image.FromFile("路径");   ((DataGridViewImageCell)this.dataGridView1.Rows[e.RowIndex].Cells[ "图片列"]).Value = "路经 "
      

  4.   

      可以直接从数据库取啊··  然后绑定到dategrideview就可以·了啊 ··
      

  5.   

       dataGridView1[0, 0].Value = Image.FromFile("E:\\aa\\1.jpg/");
       或dataGridView1[0, 0].Value = this.imageList1.Images[2];这样?
      

  6.   


    如果你有图片格式的数据在数据库内,可以直接将对应列的column格式设置为datagridviewImagColumn,绑定即可显示。
    如果只是存有图片的地址名称,建议你添加新column并设置为datagridviewImagColumn格式,数据绑定后,再单独用代码出来这个column。
    示例代码:        private void Form2_Load(object sender, EventArgs e)
            {
                // TODO: 这行代码将数据加载到表“csysDBDataSet.interview”中。您可以根据需要移动或移除它。
                this.interviewTableAdapter.Fill(this.csysDBDataSet.interview);
                DataGridViewImageColumn dgvc = (DataGridViewImageColumn)this.interviewDataGridView.Columns["ColumnPic"];
           
               MessageBox .Show ( dgvc.DataGridView.Rows.Count.ToString());
               for (int a = 0; a < dgvc.DataGridView.Rows.Count; a++)
               {
                   DataGridViewImageCell dgvcc = (DataGridViewImageCell)dgvc.DataGridView.Rows[a ].Cells["ColumnPic"];
                   try
                   {
                       string picname = this.interviewDataGridView.Rows[a].Cells["dataGridViewTextBoxColumn15"].Value.ToString();
                       dgvcc.Value = Image.FromFile(Application.StartupPath + "\\pic\\" + picname + ".jpg");
                   }
                   catch { }
            
               }
       
            }
      

  7.   

    需在邦定的那两的显示类型应为:DataGridViewImageColumn
     foreach (DataGridViewRow dgv in dataGridView2.Rows)
                {
                    string statu = dgv.Cells["dataGridViewTextBoxColumn2"].Value.ToString();
                    int id = (int)dgv.Cells["archives_id"].Value;
                    if (statu.Equals("yes"))
                    {
                        dgv.Cells["auditPic"].Value = this.audit;
                    }
                    else
                    {
                        dgv.Cells["auditPic"].Value = this.clearPic;
                    }
                    ArrayList where = new ArrayList();
                    where.Add("archives_id=" + id);
                    ArrayList list = affixManage.archivesAffix(where);
                    if (list.Count != 0)
                    {
                        dgv.Cells["affixPic"].Value = this.filePic;
                    }
                    else
                    {
                        dgv.Cells["affixPic"].Value = this.clearPic;
                    }
                    if (!this.box.Equals("waitsign"))
                    {                    string readStatu = dgv.Cells["dataGridViewTextBoxColumn4"].Value.ToString();
                        if (readStatu.Equals("no"))
                        {
                            dgv.Cells["readPic"].Value = this.image1;
                        }
                        else
                        {
                            dgv.Cells["readPic"].Value = this.image2;
                        }
                    }
                    
                }
      

  8.   

     private void ShowImage(string s)
            {
    //photo在数据库中是image的二进制保存的
                string str = "SELECT photo FROM Photos WHERE name='" + s + "'";
                SqlCommand cmd = new SqlCommand(str, conn);
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                byte[] b = (byte[])cmd.ExecuteScalar();
                if (b.Length > 0)
                {
                    MemoryStream stream = new MemoryStream(b, true);
                    stream.Write(b, 0, b.Length);
                    DrawToScale(new Bitmap(stream));
                    stream.Close();
                }
                conn.Close();
            }
        
            private void DrawToScale(Image bmp)
            {
                pictureBox1.Image = new Bitmap(bmp);
            }图片在dataGridveiw中显示 ,加载时的速度很慢!
      

  9.   

    是的  图片在datagridview中显示  如果图片  大一些(500kb以上)  一次加载1000条数据   就会出现内存不足  这个经过调试的     我2G  ddr3的内存条。。动态图片列:  在你查询出来的是byte【】字节数组转换为image对象  在form中多声明一个image text1字段用来保存   还有操作添加图片和现实图片 根据你的需要  很好实现的   我通过调试在添加一个图片到后台的过程中 再制定你操作的这个单元格 的图片(这里怎么显示) 这些都是自己测试下就能出来的  没有必要用什么事件    上面说的事件你自己测试下 循环很多次  明显有问题  同时可能还不是需要的  
      

  10.   

    额,我想问下,知不知道如何用datrgrid显示数据啊?
    我写的它数据显示在窗体上啊!不知道怎么修改!