进度条实现

第一步:设计界面不说了...注意需要引用 using System.Threading;
第二步:定义一个代理,用于更新ProgressBar的值(Value)

  1.         //更新进度列表
  2.         private delegate void SetPos(int ipos); 

 

  1. 第三步:进度条值更新函数(参数必须跟声明的代理参数一样)
  1.         private void SetTextMessage(int ipos)
  2.         {
  3.             if (this.InvokeRequired)
  4.             {
  5.                 SetPos setpos = new SetPos(SetTextMessage);
  6.                 this.Invoke(setpos, new object[] { ipos});
  7.             }
  8.             else
  9.             {
  10.                 this.label1.Text = ipos.ToString() + "/100";
  11.                 this.progressBar1.Value = Convert.ToInt32(ipos);
  12.             }
  13.         }

第四步:函数实现

  1.         private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             Thread fThread = new Thread(new ThreadStart(SleepT));//开辟一个新的线程
  4.             fThread.Start();
  5.         }

第五步:新的线程执行函数:

    1.         private void SleepT()
    2.         {
    3.             for (int i = 0; i < 500; i++)
    4.             {
    5.                 System.Threading.Thread.Sleep(100);//没什么意思,单纯的执行延时
    6.                 SetTextMessage(100 * i / 500);
    7.             }
    8.         }
posted on 2012-07-07 10:51  larryle  阅读(270)  评论(0)    收藏  举报