asp.net打造进度条窗口代码,还有取消按钮呢

asp.net打造进度条窗口代码,还有取消按钮呢
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace Test

 

{

    public class MyProgress

    {       

        private int MaxNum;

        Form progressForm=null;

        ProgressBar progressBar1=null;

        bool Stop=false;

        Label label1;

        public bool ProgressStep(int step)

        {

            if (Stop)

            {

                this.Dispose();

                return true;

            }

            if (progressBar1.Value > progressBar1.Maximum)

            {

                this.Dispose();

                return true;

            }

           

            progressBar1.Value+= step;

            label1.Text = "目前完成:" + (progressBar1.Value * 100 / progressBar1.Maximum) + "%";

            Application.DoEvents();

           

            return false;

        }

        private void btn_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("你确定终止吗", "终止", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)

            Stop = false;

            else

            Stop = true;

        }

        public MyProgress(int Max, String Caption, bool IsCancel)//最大值和标题

        {

            progressForm = new Form();

            progressForm.MinimizeBox = false;

            progressForm.MaximizeBox = false;

            progressForm.StartPosition = FormStartPosition.CenterScreen;

            progressForm.Width = 326+19;

            progressForm.Height = 96+19+20;

            progressForm.Text= Caption;

            progressForm.TopMost = true;//设置窗口在上边

            label1 = new Label();

            label1.Left = 9;

            label1.Top = 15;

            label1.Parent = progressForm;

            progressBar1 = new ProgressBar();

            progressBar1.Maximum = Max;

            MaxNum = Max;

            progressBar1.Left = 9;

            progressBar1.Top = 25+15;

            progressBar1.Width = 310;

            progressBar1.Parent = progressForm;

            progressBar1.Value = 0;

           

            if (IsCancel)

            {

                Button btnCancel = new Button();

                btnCancel.Text = "取消";

                btnCancel.Left = 240;

                btnCancel.Top = 54+20;

                btnCancel.Parent = progressForm;

                btnCancel.Click += new System.EventHandler(this.btn_Click);

               

            }

            progressForm.Show();

           

        }

        public void Dispose()

        {

            if (progressForm != null)

            {

                progressBar1.Dispose();

                progressForm.Dispose();

            }

        }

    }

}

----------------------------------

//调用测试 进度条窗口

private void button2_Click(object sender, EventArgs e)

{

    MyProgress myProgress = new MyProgress(100, "进度条", true);

    try

    {

        for (int i = 0; i < 100; i++)

        {

            if (myProgress.ProgressStep(1)) return;

            Application.DoEvents();//让系统在百忙中抽空刷新

           

            Thread.Sleep(100);

        }

    }

    finally

    {

        myProgress.Dispose();

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值