加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

WinForm DataGridView绑定图片(二进制)数据

(2013-07-05 20:16:42)
标签:

winform

datagridview

绑定图片

二进制

分类: C#-WinForm

绑定图片到DataGridView

一直都是Web程序员,习惯的思维使我想到使用DataGrid,然后没一列是一个图片的控件,把图片的路径给于就可以了,然而事实没有那么简单。 
首先:我使用了2005的DataGridView,他本身提供了一个DataGridViewImageColumn,但是却只能绑定到二进制的数据中(或者是我记错了),即使你控制图片的显示大小也不是所略图。

很简单 ---这个是我写的代码

  private void BootImaManager_Load(object sender, EventArgs e)
        {
            List<LeadPicture> list = LeadPicture.GetAllData();
            foreach (var leadPicture in list)
            {
                Bitmap map = new Bitmap(leadPicture.prictureUrl);
                Bitmap mapnew = new Bitmap(map, 15, 15);
                leadPicture.map = mapnew;
            }
            dataGridView1.DataSource = list;
        }

---------------------------------------这个是灵感来源呢---------------------------------------

应该能解决,但是在CellFormatting是相当浪费资源的

private   void   button2_Click(object   sender,   EventArgs   e) 
               
                        DataTable   dt   =   new   DataTable( "PicturePath "); 
                        dt.Columns.Add(new   DataColumn( "ID ",   typeof(string))); 
                        dt.Columns.Add(new   DataColumn( "Pic ",   typeof(string))); 
                        DataRow   dr; 
                        dr   =   dt.NewRow(); 
                        dr[0]   =   "1 "; 
                        dr[1]   =   @ "C:\Documents   and   Settings\acca192\My   Documents\My   Pictures\dd2.bmp "; 
                        dt.Rows.Add(dr); 
                        dr   =   dt.NewRow(); 
                        dr[0]   =   "2 "; 
                        dr[1]   =   @ "C:\Documents   and   Settings\acca192\My   Documents\My   Pictures\dd3.bmp "; 
                        dt.Rows.Add(dr); 
                        dr   =   dt.NewRow(); 
                        dr[0]   =   "3 "; 
                        dr[1]   =   @ "C:\Documents   and   Settings\acca192\My   Documents\My   Pictures\dd4.bmp "; 
                        dt.Rows.Add(dr); 
                        this.dataGridView1.DataSource   =   dt.DefaultView; 
                        Bitmap   image1   =   new   Bitmap(@ "C:\Documents   and   Settings\acca192\My   Documents\My   Pictures\dd6.bmp ",   true); 
                        DataGridViewImageColumn   iconColumn   =   new   DataGridViewImageColumn(); 
                        iconColumn.Image   =   image1; 
                        iconColumn.Name   =   "Tree "; 
                        iconColumn.HeaderText   =   "Nice   tree "; 
                        iconColumn.Resizable   =   DataGridViewTriState.False; 
                        iconColumn.ImageLayout   =   DataGridViewImageCellLayout.Stretch; 
                        dataGridView1.Columns.Insert(2,   iconColumn); 
                        this.dataGridView1.RowsDefaultCellStyle.WrapMode   =   DataGridViewTriState.True; 
               


    private   void   dataGridView1_CellFormatting(object   sender,   DataGridViewCellFormattingEventArgs   e) 
               
                        
                        e.CellStyle.WrapMode   =   DataGridViewTriState.True; 
                        Bitmap   image1; 
                        if   (this.dataGridView1.Columns[e.ColumnIndex].Name   ==   "Pic ") 
                       
                              
                                if   (e.Value   !=null) 
                               
                                        strPath   =   (string)e.Value; 
                               
                       
                        else   if   (this.dataGridView1.Columns[e.ColumnIndex].Name   ==   "Tree ") 
                       
                                if   (strPath.Length   ==   0) 
                               
                                        return; 
                               
                                image1   =   new   Bitmap(strPath,   true); 
                                  if   (this.dataGridView1.Columns[e.ColumnIndex].Name   ==   "Tree ") 
                                 
                                          e.Value   =   image1; 
                                 
                       

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有