使用winform实现图片的滑动效果(类似网站首页图片滑动切换效果),结果实现了,但是效果其实不是很理想。
也许有更好的方法。        

     

       

    

     Timer timerSlide = null;

        //当前初始化的PictureBox
PictureBox box = null;
//当前PictureBox
PictureBox curBox = null;
//下一个PictureBox
PictureBox nxtBox = null;
//前进方向
string direction = "";
//当前图片的索引
int curIdx = 0; //Panel1的宽度
int width = 0;
//当前图片x的坐标
int curXPos = 0; public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Init();
} private void Init()
{
width = splitContainer1.Panel1.Width; timerSlide = new Timer();
timerSlide.Interval = 100;
timerSlide.Tick += timerSlide_Tick;
timerSlide.Enabled = false; //初始化Panel1
box = new PictureBox();
box.Size = new Size(splitContainer1.Panel1.Width, splitContainer1.Panel1.Height);
box.SizeMode = PictureBoxSizeMode.StretchImage;
box.Image = imageListContainer.Images[0];
splitContainer1.Panel1.Controls.Clear();
splitContainer1.Panel1.Controls.Add(box); curBox = box;
} private void timerSlide_Tick(object sender, EventArgs e)
{
if (direction.Equals("right"))
{
splitContainer1.Panel1.Controls.Clear();
splitContainer1.Panel1.Controls.Add(curBox);
splitContainer1.Panel1.Controls.Add(nxtBox);
curBox.Location = new Point(curXPos, 0);
nxtBox.Location = new Point(width + curXPos, 0);
if (Math.Abs(curXPos) == width)
{
curXPos = 0;
timerSlide.Enabled = false;
curBox = nxtBox;
}
curXPos -= 30;
}
else if (direction.Equals("left"))
{
splitContainer1.Panel1.Controls.Clear();
splitContainer1.Panel1.Controls.Add(curBox);
splitContainer1.Panel1.Controls.Add(nxtBox);
curBox.Location = new Point(curXPos, 0);
nxtBox.Location = new Point(curXPos - width, 0);
if (curXPos == width)
{
curXPos = 0;
timerSlide.Enabled = false;
curBox = nxtBox;
}
curXPos += 30;
}
else
{
timerSlide.Enabled = false;
return;
} //timerSlide.Enabled = false;
} private void lbLeft_Click(object sender, EventArgs e)
{
if (curIdx == 0)
{
curIdx = imageListContainer.Images.Count - 1; box = new PictureBox();
box.Size = new Size(splitContainer1.Panel1.Width, splitContainer1.Panel1.Height);
box.SizeMode = PictureBoxSizeMode.StretchImage;
box.Image = imageListContainer.Images[curIdx];
splitContainer1.Panel1.Controls.Clear();
//splitContainer1.Panel1.Controls.Add(box1); //curIdx = imageListContainer.Images.Count - 1;
}
else
{
curIdx -= 1; box = new PictureBox();
box.Size = new Size(splitContainer1.Panel1.Width, splitContainer1.Panel1.Height);
box.SizeMode = PictureBoxSizeMode.StretchImage;
box.Image = imageListContainer.Images[curIdx];
splitContainer1.Panel1.Controls.Clear();
//splitContainer1.Panel1.Controls.Add(box1); //curIdx -= 1;
}
direction = "left";
nxtBox = box;
//启动定时器
timerSlide.Enabled = true;
} private void lbRight_Click(object sender, EventArgs e)
{
if (curIdx == imageListContainer.Images.Count - 1)
{
curIdx = 0; box = new PictureBox();
box.Size = new Size(splitContainer1.Panel1.Width, splitContainer1.Panel1.Height);
box.SizeMode = PictureBoxSizeMode.StretchImage;
box.Image = imageListContainer.Images[curIdx];
splitContainer1.Panel1.Controls.Clear();
//splitContainer1.Panel1.Controls.Add(box2); //curIdx = 0;
}
else
{
curIdx += 1; box = new PictureBox();
box.Size = new Size(splitContainer1.Panel1.Width, splitContainer1.Panel1.Height);
box.SizeMode = PictureBoxSizeMode.StretchImage;
box.Image = imageListContainer.Images[curIdx];
splitContainer1.Panel1.Controls.Clear();
//splitContainer1.Panel1.Controls.Add(box2); //curIdx += 1;
}
direction = "right";
nxtBox = box;
//启动定时器
timerSlide.Enabled = true;
}

  

winform实现图片的滑动效果的更多相关文章

  1. Android进阶:ListView性能优化异步加载图片 使滑动效果流畅

    ListView 是一种可以显示一系列项目并能进行滚动显示的 View,每一行的Item可能包含复杂的结构,可能会从网络上获取icon等的一些图标信息,就现在的网络速度要想保持ListView运行的很 ...

  2. Android实现左右滑动效果

    本示例演示在Android中实现图片左右滑动效果.   关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来 ...

  3. Android 实现左右滑动效果ViewFlipper终结【转】

    本示例演示在Android中实现图片左右滑动效果.   关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来 ...

  4. Flexslider图片轮播、文字图片相结合滑动切换效果

    Flexslider是一款基于的jQuery内容滚动插件.它能让你轻松的创建内容滚动的效果,具有非常高的可定制性.开发者可以使用Flexslider轻松创建各种图片轮播效果.焦点图效果.图文混排滚动效 ...

  5. 《JavaScript 实战》:实现图片幻滑动展示效果

    滑动展示效果主要用在图片或信息的滑动展示,也可以设置一下做成简单的口风琴(Accordion)效果.这个其实就是以前写的图片滑动展示效果的改进版,那是我第一篇比较受关注的文章,是时候整理一下了. 有如 ...

  6. 仿优酷Android客户端图片左右滑动(自动滑动)

    最终效果: 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayou ...

  7. 十六、Android 滑动效果汇总

    Android 滑动效果入门篇(一)—— ViewFlipper Android 滑动效果入门篇(二)—— Gallery Android 滑动效果基础篇(三)—— Gallery仿图像集浏览 And ...

  8. Android 滑动效果进阶篇(六)—— 倒影效果

    上篇介绍了使用Animation实现3D动画旋转翻页效果,现在介绍图片倒影实现,先看效果图 本示例主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现 1.倒影绘 ...

  9. Android 滑动效果入门篇(二)—— Gallery

    Gallery 是Android官方提供的一个View容器类,继承于AbsSpinner类,用于实现页面滑动效果. 从上面的继承关系可以看出,AbsSpinner类继承自AdapterView,因此我 ...

随机推荐

  1. hypermesh对msh文件或者cas文件重新命名边界

    原视频下载地址: https://pan.baidu.com/s/1c1Thqm 密码: muhe

  2. mariadb使用with子句重写SQL性能提升5倍

    几个月前,我们有个产品的开发反馈了个问题,说有个组织结构的查询很慢,几千行的复杂关联需要1秒钟,表示太慢了,原语句如下: SELECT org.org_id, org.dimension, org.o ...

  3. SQL多个逗号分开的字段值 取对应的数据名称信息

    字段值 函数实现: )) ) as begin set @strs=','+@strs+',' ) ) set @str2='' declare SyncOrderCursor cursor for ...

  4. Docker安装ES和Kibana

    1.ES安装 1.下载ES镜像问题 docker pull elasticsearch 2.运行ES docker run -it --name elasticsearch -d -p 9200:92 ...

  5. cmake find_package说明

    CMake中find_package功能演示 find_package可以被用来在系统中自动查找配置构建工程所需的程序库.在linux和unix类系统下这个命令尤其有用.CMake自带的模块文件里有大 ...

  6. 【Ubuntu升级python3.5到python3.6】dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered while processing: E: Sub-process /usr/bin/dpkg returned an error code (1) 问题解决

    Ubuntu16.04上将系统自带的python3.5升级到3.6 安装aioredis时提示Python版本需>=3.5.3,所以进行升级命令如下: $ sudo add-apt-reposi ...

  7. LumiSoft 邮件操作删除(无法删除解决方法)

    最近在用 LumiSoft  进行邮件读取,然后操作相关附件邮件使用的是qq邮箱,读取后进行移除,但是怎么都移除不了 后来咨询了官方客服,原来是设置不对 需要 取消掉 X禁止收信软件删信 (仅对 PO ...

  8. radio和checkbox的js勾选使用

    Html: <table> <tr><th class="w1">党内职务</th><td colspan="3&q ...

  9. JAVA克隆对象报错:The method clone() from the type Object is not visible

    将一个对象复制一份,称为对象的克隆技术.在Object类汇总存在一个clone()方法:protected Onject clone() throws CloneNotSupportedExcepti ...

  10. (CSDN迁移) Java路径获取

    package unit02; /** * * @time 2014年9月18日 下午10:29:48 * @porject ThinkingInJava * @author Kiwi */ publ ...