当我们想加载图片时,一般情况下都会使用picturebox控件,这个控件可以加载各种格式的图片,当然也包括gif图片。但是有时,我们也希望一些数据展示控件也可以加载图片,比如说DataGridView,这个控件确实可以做到加载图片,但是当我们想让它加载gif图片时问题就来了,我们会发现当DataGridView加载gif图片时,确实可以显示图片,但是gif图片的动态效果却没有显示出来,只显示gif图片的第一个帧(这里说的是具有多帧的gif图片),下面就介绍一下如何解决这个问题。

首先,我们在窗体上拖拽一个picturebox控件,把它的默认图片设置为你想要加载的gift图片,把它的size都设置为1。这么做的目的主要是为了隐藏它,但是不能把visible属性设置为false,因为使控件不可见会影响它的动态效果。

然后,我们在窗体的page_load事件中加入一些测试代码,例如:

private void Form1_Load(object sender, EventArgs e)

{

DataTable dt = new DataTable();

DataColumn dc = new DataColumn("Gif", typeof(Bitmap));

dt.Columns.Add(dc);

dt.Rows.Add(dt.NewRow());

dt.Rows.Add(dt.NewRow());

dataGridView1.DataSource = dt;

}

这里采用DataTable作为数据源,加入了两个空行,但是并没给他赋值,之后绑定到DataGridView控件。那什么时候赋值呢?别着急,我们继续往下看。

这里的赋值方法使用timer控件,往窗体中加入一个timer控件,然后添加如下测试代码,例如:

private void timer1_Tick(object sender, EventArgs e)

{

if (this.dataGridView1.Rows.Count > 0)

{

for (int i = 0; i < dataGridView1.Rows.Count; i++)

{

//把窗体上的picturebox控件赋值给单元格

this.dataGridView1.Rows[i].Cells[0].Value = this.pictureBox1.Image;

//注意对单元格进行强制重绘

this.dataGridView1.InvalidateCell(0, i);

}

}

}

运行程序,我们就可以看到动态的gif图片了。

DataGridView加载gif图片的更多相关文章

  1. WebView加载HTML图片大小自适应与文章自动换行

    http://www.brighttj.com/ios/ios-webview-load-html-image-adaptive.html 在很多App中都会使用到webview,尤其是在加载新闻内容 ...

  2. Android ListView 图片异步加载和图片内存缓存

    开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...

  3. WPF中加载高分辨率图片性能优化

    在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: < ...

  4. Fresco 使用笔记(一):加载gif图片并播放

    项目总结 --------------------------------------------------------------------- 前言: 项目中图文混合使用的太多太多了,但是绝大部 ...

  5. 图片_ _Android有效解决加载大图片时内存溢出的问题 2

    Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...

  6. Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子

    Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...

  7. Adobe Edge Animate –解决图形边缘精确检测问题-通过jquery加载svg图片

    Adobe Edge Animate –解决图形边缘精确检测问题-通过jquery加载svg图片 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 在edge ...

  8. android95 缩放加载大图片

    MainActivity: package com.itheima.loadimage; import android.os.Bundle; import android.app.Activity; ...

  9. Android(java)学习笔记236:多媒体之加载大图片到内存(Bitmap API)

    1.Bitmap (API使用) android里面的bitmap中,一个像素点需要4个byte去表示,这是因为android表示颜色是" argb ":其中 a 表示是透明度,然 ...

随机推荐

  1. axios基础用法

    概述: 1.axios:一个基于Promise用于浏览器和nodejs的HTTP客户端.本质是对ajax的封装. 特征: 1>从浏览器中创建XMLHttpRequest 2>从node.j ...

  2. deprecate (声明不赞成)

    deprecate (声明不赞成)  只是不赞成,不影响使用,或者你升级包 解决:update to 高版本 npm update [-g] [<pkg>...]

  3. FirstBird--项目流程

    创建项目(英文路径)—–img图片文件 创建窗体–设置大小(Basic—size–>320*480)—最大化功能禁用(Expert–>setResizable(false)) 添加面板–设 ...

  4. C++创建一个名为Ellipse的椭圆类--练习

    题目描述: /*设计名为Ellipse的椭圆类*/ /* 其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积,并测试该类. */ 代码如下: #include<iostream& ...

  5. Codeforces Round #491 (Div. 2)部分题解

    这场比赛好鬼畜啊,,A题写崩了wa了4遍,心态直接爆炸,本来想弃疗了,结果发现BCD都是傻逼题.. A. If at first you don't succeed...(容斥原理) 题目大意: 有$ ...

  6. JQuery实现注册表单验证

    效果图如下: 注册页面HTML代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...

  7. 【解决】MacOS下 Python3.7 使用 pyinstaller 打包后执行报错 Failed to execute script pyi_rth__tkinter

    Fix tcl/tk libs inclusion in tkinter with Python3.7 under MacOS 使用 Pyinstaller 打包时候报错 3027 ERROR: Tc ...

  8. plsql 连接数据库无法解析指定的连接标识符

    之前用plsql连接的时候一直出问题,报无法解析指定的连接标识符,但是我加上ip地址就可以连接上. 我百度了很久,有说如下图选择oracle home的,有说清空admin目录下的所有文件, 但是都不 ...

  9. Linux基础(04)、功能配置(调整防火墙、静态IP、环境变量)

    目录 一.centos防火墙 二.VMware网络连接方式 2.1.连接方式:桥接.NAT.仅主机 2.2.常见问题 三.centos配置静态IP 四.环境变量 4.1.什么是环境变量 4.2.临时修 ...

  10. React+DvaJS 之 hook 路由权限控制

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP 活动 招聘 ITeye 写博客 发Chat 登录注册 原 React+DvaJS 之 hook 路由权限控制 20 ...