zoukankan      html  css  js  c++  java
  • 利用代理实现非模式弹出进度条窗体

    弹出进度条的窗体名称:ProcessBar
    主窗体:Form1
    实现的功能:Form1要执行大工作量的操作,需要弹出一个窗体显示进度条


    实现方法:

    ProcessBar窗体:

    在ProcessBar窗体中设置FormBorderStyle为None ,StartPosition为CenterScreen
    在窗体中央放一个progressBar1控件
    设置progressBar1控件的Maximun=20,step=1
    在代码中添加:
      public void addone()
      {
        if(progressBar1.Value==20)
             progressBar1.Value=0;
       progressBar1.Value++;
      }

    Form1窗体:

    在namespace下,form1类之前声明代理:
    public delegate void addProcess();

    在form1类中声明事件
    public event addProcess doadd;

    然后添加方法:
    //very large work to do
      public void dowork()
      {
       string sor="";
       for(int i=0;i<20000;i++)
       {
        sor+=i.ToString();
        if(i%1000==0)
         doadd();
       }
       //MessageBox.Show(sor);
      }

    在要触发大工作量事件的地方这样写:
    //按钮:执行大工作量字符串连接
      private void button10_Click(object sender, System.EventArgs e)
      {
          ProcessBar pj=new ProcessBar();
         this.doadd+=new addProcess(pj.addone);
         pj.Show();
         Thread mm=new Thread(new ThreadStart(dowork));
         mm.Start();
         mm.Join();
         pj.Close();
      }

  • 相关阅读:
    Quartz.net 定时任务在IIS中未按时执行
    扩展方法
    mysql 实用语句
    jquery each map
    js匿名函数多时注意
    ASP.NET MVC3调用分部视图
    eclipse快捷键
    regular 点滴
    适配器模式
    php代码实现简单图片下载
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1095020.html
Copyright © 2011-2022 走看看