园区网互联及网站建设,wordpress calendar,西安市在建工程项目,wordpress首页文章排序最近要给一个 Winform 项目添加功能#xff0c;需要一个能显示进度条的弹窗#xff0c;还要求能够中止任务#xff0c;所以就做了一个#xff0c;在此做个记录总结。虽然用的是比较老的 Winform 技术#xff0c;不过其中的原理都是相通的。loading随处可见#xff0c;比如… 最近要给一个 Winform 项目添加功能需要一个能显示进度条的弹窗还要求能够中止任务所以就做了一个在此做个记录总结。虽然用的是比较老的 Winform 技术不过其中的原理都是相通的。loading随处可见比如一个app经常会有下拉刷新上拉加载的功能在刷新和加载的过程中为了让用户感知到 load 的过程我们会使用一些过渡动画来表达。最常见的比如“转圈圈”“省略号”等等。使用c#做WinFrom开发要实现进度条效果就需要用到多线程如果不采用多线程控制进度条窗口很容易假死。1、设计界面注意需要引用 using System.Threading;控件名称分别为progressBar1label1textBox1button12、定义一个代理用于更新ProgressBar的值Value及在执行方法的时候返回方法的处理信息。private delegate void SetPos(int ipos,string vinfo);3、进度条值更新函数private void SetTextMesssage(int ipos,string vinfo){if (this.InvokeRequired){SetPos setpos new SetPos(SetTextMesssage);this.Invoke(setpos, new object[] { ipos,vinfo });}else{this.label1.Text ipos.ToString() /1000;this.progressBar1.Value Convert.ToInt32(ipos);this.textBox1.AppendText(vinfo);}}4、函数实现private void button1_Click(object sender, EventArgs e){Thread fThread new Thread(new ThreadStart(SleepT));fThread.Start();}5、新的线程执行函数private void SleepT(){for (int i 0; i 500; i){System.Threading.Thread.Sleep(10);SetTextMesssage(100*i/500,i.ToString()\r\n);}}