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

winform窗体中 DataGridView显示图片,该怎么解决

2013-04-20 
winform窗体中DataGridView显示图片在DataGridView中显示:图片、姓名这两列怎么动态显示??求解!![解决办法]

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

[解决办法]
添加两列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 = "路经 "
[解决办法]
  你的动态是怎么个动态法??   直接从数据库取??

[解决办法]
直接绑定到数据库不就动态显示了么?你想怎么个动态法?
[解决办法]

引用:
动态就是直接绑定到数据


……
[解决办法]
  可以直接从数据库取啊··  然后绑定到dategrideview就可以·了啊 ··
[解决办法]
   dataGridView1[0, 0].Value = Image.FromFile("E:\\aa\\1.jpg/");
   或dataGridView1[0, 0].Value = this.imageList1.Images[2];这样?


[解决办法]
引用:
就是从数据库中查处的图片和姓名显示到dgv上就可以了


如果你有图片格式的数据在数据库内,可以直接将对应列的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 { }
        
           }
   
        }


[解决办法]
需在邦定的那两的显示类型应为: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;
                    }
                }
                
            }

热点排行