当前位置: 编程技术>.net/c#/asp.net
c#进度条如何实现(附简单实例)
来源: 互联网 发布时间:2014-08-30
本文导语: c#开发winform程序时,经常用到进度条(ProgressBar)显示进度信息,此时需要用到多线程控制进度条,否则窗口很容易假死(无法适时看到进度信息)。 程序界面类似如下图片: 第一步:设计界面,这个略过。 引用 using System.Th...
c#开发winform程序时,经常用到进度条(ProgressBar)显示进度信息,此时需要用到多线程控制进度条,否则窗口很容易假死(无法适时看到进度信息)。
程序界面类似如下图片:
第一步:设计界面,这个略过。
引用 using System.Threading;
第二步:定义一个代理,用于更新ProgressBar的值(Value)
//更新进度列表 private delegate void SetPos(int ipos);
第三步:进度条值更新函数(参数必须跟声明的代理参数一样)
private void SetTextMessage(int ipos) { if (this.InvokeRequired) { SetPos setpos = new SetPos(SetTextMessage); this.Invoke(setpos, new object[] { ipos}); } else { this.label1.Text = ipos.ToString() + "/100"; this.progressBar1.Value = Convert.ToInt32(ipos); } }//www.
第四步:函数实现
private void button1_Click(object sender, EventArgs e) { Thread fThread = new Thread(new ThreadStart(SleepT));//开辟一个新的线程 fThread.Start(); }
第五步:新的线程执行函数:
private void SleepT() { for (int i = 0; i < 500; i++) { System.Threading.Thread.Sleep(100);//没什么意思,单纯的执行延时 SetTextMessage(100 * i / 500); } }//www.
到此一个简单的进度条程序就做好了,更多复杂的实现,大家自行扩充吧。