前言

最近项目中需要在winform中做一个类似于网页那种轮播的效果,这里做下记录。

实现

整体的实现思路如下:

  1. 读取图片文件夹。
  2. 建立一个集合存储Image对象。
  3. 定时器定时更换PictrueBox的显示图片
        private List<Image> ilst = new List<Image>();//全局image集合
private int imageIndex = 0;//图片索引
//读取配置文件中的文件夹路径
private string Slideshow()
{
try
{
XElement xe = XElement.Load("SettingsConfig.xml");
string result = xe.Element("imagePath").Value;
return result;
}
catch (Exception ex)
{
LogHelper.WriteLog("文件夹读取失败", ex);//log4net记录
return null;
}
}
//将读取的image对象添加到集合中
private void Picture()
{
//指定图片类型
string imgtype = "*.BMP|*.JPG|*.GIF|*.PNG";
string[] ImageType = imgtype.Split('|');
for (int i = 0; i < ImageType.Length; i++)
{
string[] images = Directory.GetFiles(Slideshow(), ImageType[i]);
foreach (var item in images)
{
ilst.Add(Image.FromFile(item));
}
}
}
//添加一个定时器,图片轮播速度可以通过定时器的Interval属性控制
private void tmrSlideshow_Tick(object sender, EventArgs e)
{
picBacckGround.Image = ilst[imageIndex];
imageIndex++;
if (imageIndex > ilst.Count - 1) imageIndex = 0;
} //最后调用Picture方法就可以了 记得把定时器Enable属性设为true。

注意:在测试过程中,出现了Image.FromFile()方法内存不足的错误,指定图片类型就好了。如上面Picture()方法,指定图片类型就可以解决内存不足了。

Winform 实现图片轮播(解决Image.FromFile内存不足)的更多相关文章

  1. C# winform 实现图片轮播

    作为一个C#winform刚刚入门的我  觉得这可能是初学者都会遇到的  我自己也觉得很神奇 首先 窗体里有一个Button按钮,和一个pictureBox 图片框 定义一个线程方法 /// < ...

  2. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  3. 基于面向对象的图片轮播(js原生代码)

    无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享————基于面向对象思想的图 ...

  4. UIScrollView实现图片轮播器及其无限循环效果

    图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" ...

  5. Android学习笔记之图片轮播...

    PS:一个bug又折腾了一个下午....哎... 学习内容: 1.Android利用ViewPager和PagerAdapter实现图片轮播... 2.使用反射机制获取Android的资源信息... ...

  6. IOS第六天(3:scrollView 图片轮播器)

    IOS第六天(3:scrollView 图片轮播器) #import "HMViewController.h" #define kImageCount 5 @interface H ...

  7. ios之无限 自动 图片轮播器的实现

    比较之前发布的手动无限图片轮播器进行了改进.实现了自动无限轮播的功能.比较适合团购标题分类下面的轮播器功能. 实现思路: * 开启一个定时器,把操作放入消息循环池.每隔一定时间,操作执行一次. * 注 ...

  8. Android Studio导入GitHub上的项目常见问题(以图片轮播开源项目为实例)

    前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问 ...

  9. Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示

    用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件 ...

随机推荐

  1. msql中@RequestParam、@Param、@PathVariable的用法

    @RequestParam的用法 1.可以对传入参数指定参数名,将请求参数绑定至方法参数 // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错 @RequestParam(value=&q ...

  2. uwp 之资源的访问

    访问image资源 ----------------------------------------------------------------------------- BitmapImage ...

  3. linux & windows下的动态库制作

     动态链接库不是linux独有的特性,在windows下面也存在这样的特性.一般来说,windows下面的动态连接库是以*.dll作为结尾的,而linux下面的动态连接库是以*.so结尾的.和静态链接 ...

  4. ABC类IP地址

    A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位 必须是"0", 地址范围从1.0.0.0 到126.0.0.0.可用的A类网络有126个,每个 ...

  5. 创建File类 及 this.getClass().getResource()方法 用到的文件路径的问题

    1 package test; 2 3 import java.io.*; 4 import java.util.Scanner; 5 6 public class TestResource { 7 ...

  6. Longhorn 云原生容器分布式存储 - Python Client

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...

  7. Linux核心知识

    电脑:辅助人脑的工具 现在的人们几乎无时无刻都会碰电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑.智慧型手机等等,这些东西都算是电脑.虽然接触的这么多,但是,你了解电脑里面的元件有什么吗 ...

  8. 手写 lodash/get、lodash/set 方法

    动机:平时写js代码时经常遇到要使用 lodash 中 _.get 和 _.set 的情况,每次使用都要引用 lodash,总感觉很烦,能不能自己实现一个简单的方法来实现一样的功能呢? get 方法实 ...

  9. MongoDB(4)- Collection 集合相关

    Collection MongoDB 将文档存储在集合中 集合存储在 Database 中 集合类似于关系数据库(Mysql)中的表 如果集合不存在,则 MongoDB 会在第一次存储该集合数据时创建 ...

  10. ubantu 编译安装xl2tpd笔记

    1. 下载xl2tpd源码 推荐一个仍在维护的网站:    https://www.xelerance.com/archives/202 也可以从其他的网站下载:例如:https://pkgs.org ...