winform 利用线程 实现窗体图片轮播
来源:互联网 发布:深圳阿里云大厦图片 编辑:程序博客网 时间:2024/06/06 15:00
之前做一个餐饮点餐系统,需要在主界面实现自定义的一些图片的轮播,起初使用定时器,但是当子窗体打开,主线程转移,图片轮播就停止了。
随之使用线程来实现,当时查阅不少博客,与之契合的较少。所以贴上自己的代码,供后来者多一份参考~
线程的使用需要注意: 1、开始时确认线程的调用状态。 2、程序结束、或功能完成后,判断线程状态,并关闭。
using System.Windows.Forms;using OrderFoodSystem.BLL;using System.Threading;namespace OrderFoodSystem{ public partial class FrmMain : Form { public FrmMain() { Form.CheckForIllegalCrossThreadCalls = false; // 线程调用状态 InitializeComponent(); } Thread t; private void FrmMain_Load(object sender, EventArgs e) //FormLoad { t = new Thread(new ThreadStart(Runiamge)); //启动线程 t.Start(); foodInfoBLL fib = new foodInfoBLL(); List<Model.foodInfo> foodlist = fib.outfoodlist(1); foreach (Control control in this.Controls)//遍历Form上的所有控件 { if (control is PictureBox) { PictureBox pb = (PictureBox)control; pb.AllowDrop = true; } } #region 推荐菜品图片轮播的实现 public List<string> foodPhoto = new List<string>(); //声明一个list集合用来存放 需要轮播的图片路径 private void btnFoodRecom_Click(object sender, EventArgs e) //添加推荐图片 { //t = new Thread(new ThreadStart(Runiamge)); //t.Start(); foodInfoBLL fib = new foodInfoBLL(); List<Model.foodInfo> foodlist = fib.outfoodlist(1); for (int i = 0; i < foodlist.Count; i++) { foodPhoto.Add(foodlist[i].FoodPhoto); } foreach (Control picbox in panel1.Controls) { if (picbox is PictureBox) { PictureBox pic = (PictureBox)picbox; pic.SizeMode = PictureBoxSizeMode.StretchImage; } } } private void Runiamge() //图片轮播 { while (true) { for (int i = 0; i < foodPhoto.Count - 3; i++) { //if (foodPhoto.Count == i - 3) //{ // i = 0; //} pictureBox1.Image = Image.FromFile(foodPhoto[i].ToString()); pictureBox2.Image = Image.FromFile(foodPhoto[i + 1]); pictureBox3.Image = Image.FromFile(foodPhoto[i + 2]); Thread.Sleep(1500); pictureBox1.Image = null; } } } private void FrmMain_FormClosed(object sender, FormClosedEventArgs e) //窗体关闭时结束线程 { if (t.ThreadState == ThreadState.Running) //判断线程是否处于运行状态 { t.Abort(); } } #endregion
阅读全文
1 0
- winform 利用线程 实现窗体图片轮播
- C#winform 实现图片轮播
- 利用vueJs实现图片轮播
- 实现利用jq图片点击轮播
- 利用banner实现图片无限轮播,
- 利用反射,实现动态调用winform窗体!!
- 利用委托实现winform窗体间通信
- winform利用委托实现窗体间传值
- 利用反射,实现动态调用winform窗体!!
- Android之利用Viewpager实现图片的轮播效果
- Android中利用Handler实现图片轮播 ,示例+ 代码
- 利用Viewpager+Timer实现图片广告轮播
- 实现图片轮播
- 实现图片轮播
- 图片轮播实现
- winform程序三个窗体间同步数据(六):利用多播委托同步数据
- 利用委托事件实现Winform窗体之间的同步刷新
- Winform中利用委托实现窗体之间的传值
- 工作这么久,该记录一下了
- AsyncTask
- jQuery是如何处理缓存的?
- Linux各个目录介绍
- opencv基础用法
- winform 利用线程 实现窗体图片轮播
- 微信红包(数组中出现次数大于一半的数)
- win7默认网关不可用怎么修复 win7默认网关不可用的快速解决方法
- 5分钟掌握智联招聘网站爬取并保存到MongoDB数据库
- 动态规划——钢条切割
- 处理自动装配的歧义性
- C语言之文件重定向学习笔记
- 簇和簇表+簇+簇表+创建簇+创建簇表
- Java中保留字和关键字的区别