自定义Image自动切换图像控件

作者:   出处:互联网   2015-06-03 04:08:44   阅读:4

做这么一个控件,图片自动切换,形成动画效果。



 


随便的码码,码完发现东西太少了,不过还算完善。



 1 public class MyPictureBox : PictureBox 

4 Timer timer = new Timer ();
6 private int curPicIndex = 0;
8 private bool run = false;
10 public bool Run
12 get { return run; }
13 set
15 run = value;
16 if (value)
17 timer.Start();
18 else
19 timer.Stop();
23 private List Image imgList = new List Image ();
25 private string[] imagepaths = null;
27 public string[] ImagePaths
29 get { return imagepaths; }
30 set
32 imagepaths = value;
34 if (imagepaths == null || imagepaths.Length == 0)
35 return;
37 imgList.Clear();
39 foreach (string v in imagepaths)
41 try
43 imgList.Add(Image.FromFile(v));
45 catch
46 { }
51 //private map
53 private int autoTimeInterval = 100;
55 public int AutoTimeInterval
57 get { return autoTimeInterval; }
58 set
60 autoTimeInterval = value;
61 if (value 50 value 5000)
62 timer.Interval = value;
66 public MyPictureBox()
68 base.SizeMode = PictureBoxSizeMode.StretchImage;
70 timer = new Timer();
71 timer.Interval = autoTimeInterval;
72 timer.Tick += (s, e) =
74 timer.Stop();
76 if (imgList != null imgList.Count 0)
78 int imgcount = imgList.Count;
79 if (imgcount 0)
81 curPicIndex = (curPicIndex + 1) % imgcount;
82 base.Image = imgList[curPicIndex];
85 timer.Start();
87 };
89 }

MyPictureBox


控件写好了,只有把它放到窗体上才能正常使用。


在一个form窗体里这样写:



 1 //loadingPic : 加载本地图片

2 private void button1_Click(object sender, EventArgs e)
4 OpenFileDialog dlg = new OpenFileDialog();
5 dlg.ValidateNames = true;
6 dlg.Multiselect = true;
7 dlg.ShowDialog();
8 this.myPictureBox1.ImagePaths = dlg.FileNames;
11 //stop : 图片停止切换
12 private void button2_Click(object sender, EventArgs e)
14 this.myPictureBox1.Run = false;
17 //run : 图片开启切换
18 private void button3_Click(object sender, EventArgs e)
20 this.myPictureBox1.Run = true;
23 // 设置图片切换的时间间隔
24 private void trackBar1_ValueChanged(object sender, EventArgs e)
26 this.myPictureBox1 .AutoTimeInterval = this.trackBar1.Value * 30;
27 }

Form窗体内事件

代码很简单,但是这种模式用的地方很多,比如,自己做一个相册,可以自动切换照片;或者做一个简单的小游戏的时候,控制人物的行为,行走啊,战斗时从出手到战斗结束回归原状态的一系列动作啊等等(其实就是一帧一帧的图片连续播放,和flash一样的);或者是做水流的效果图(两三张就够了,水面的纹理发生改变时,就认为水是动的了),也可以说能想象到的一切简单的动态效果或者行为,都可以用Image控件实现。


比较简单,就这么多了。


最牛的工程,也是通过简单的模块堆积出来的,呵呵。


 


随手打,未仔细检查,如果有什么疑难杂症,见谅!


 


到了这个年龄,已经进入特殊状态了:工作、女朋友,两手抓,两手都要硬,一个都不能放弃。本想偷空的时候好好码一篇,结果还是没时间,毕竟这么大了,也该找个伴了,有句话不是这么说嘛:时间要用在刀刃上。呵呵,胡扯。


Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat