学习笔记--progressbar简单示例

进度条简单示例,其实不算是自己的东西了,就是留个学习记录吧

using System.Windows.Forms;

//第一步 添加引用

using System.Threading;

using System.IO;

namespace progressbar

{

  public partial class Form1:From

  {

    public Form1()
         {
             InitializeComponent();
         }

         //第二步 定义委托更新进度条的值
         private delegate void SetPos(int ipos);
     //第三步 进度条值更新函数
     private void SetTextMessage(int ipos)
          {
              if (this.InvokeRequired)
              {
                   SetPos setPos = new SetPos(SetTextMessage);

         //主线程外修改主线程时使用this.Invoke
                   this.Invoke(setPos, new object[] { ipos });
              }
              else
              {
                   this.label1.Text = ipos.ToString() + @"/100";
                   this.pgb.Value = Convert.ToInt32(ipos);
              }
         }

         //进度条的使用及开发函数
         private void button1_Click(object sender, EventArgs e)
         {
              Thread fThread = new Thread(new ThreadStart(SleepT));
              //开辟一个新线程
              fThread.Start();
         }

    //提示信息
         public delegate void showMsg(string msg);
         public void msgBox(string msg)
         {
              if (this.InvokeRequired)
              {
                  showMsg show_msg = new showMsg(msgBox);
                  this.Invoke(show_msg, new object[] { msg });
              }
              else
              {
                  MessageBox.Show(msg);
              }
         }

         private void SleepT()
         {
              for (int i = 0; i < 200; i++)
              {
                  //单纯的延时
                  Thread.Sleep(100);
                  SetTextMessage(100 * i / 200);
              }
              SetTextMessage(100);
              msgBox("success");
         }

  }

}

posted @ 2012-12-27 15:37  茂茂  阅读(123)  评论(0编辑  收藏  举报