• 技术文章 >后端开发 >C#.Net教程

    C#实现带百分比的进度条功能的示例代码分享

    黄舟黄舟2017-05-14 10:30:18原创1122
    这篇文章主要介绍了C#实现带百分比的进度条功能,分析了带百分比进度条的功能需求并结合实例形式给出了具体实现步骤与相关操作方法,需要的朋友可以参考下

    本文实例讲述了C#实现带百分比的进度条功能。分享给大家供大家参考,具体如下:

    功能需求:

    如果程序中会执行一个耗时的计算过程,我想在用户点击按钮后,弹出一个进度条窗口,显示正在执行的进度(最好能带有百分比),执行完成后,进度条窗口关闭,回到主程序窗口。 在关闭子窗口之前父窗体不能点击操作。

    实现方法:

    先设计Form2进度条窗体,在Form2中央上放ProgressBar控件progressBar1和Label控件label1,代码:

    public partial class Form2 : Form
    {
     public Form2(int _Minimum,int _Maximum)//带参数,表示进度条的范围的最小值和最大值
     {
       InitializeComponent();
       progressBar1.Maximum=_Maximum;//设置范围最大值
       progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
     }
     public void setPos(int value)//设置进度条当前进度值
     {
       if (value < progressBar1.Maximum)//如果值有效
       {
         progressBar1.Value = value;//设置进度值
         label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";//显示百分比
       }
       Application.DoEvents();//重点,必须加上,否则父子窗体都假死
     }
     private void Form2_Load(object sender, EventArgs e)
     {
       this.Owner.Enabled = false;//设置父窗体不可用
     }
     private void Form2_FormClosed(object sender, FormClosedEventArgs e)
     {
       this.Owner.Enabled = true;//回复父窗体为可用
     }
    }

    调用窗体For1m设计,添加Button控件button1,事件代码:

    private void button1_Click(object sender, EventArgs e)
    {
       Form2 fm = new Form2(0,100);
       fm.Show(this);//设置父窗体
       for (int i = 0; i < 100; i++)
       {
         fm.setPos(i);//设置进度条位置
         Thread.Sleep(100);//睡眠时间为100
       }
       fm.Close();//关闭窗体
    }

    补充:有朋友说在vs2003中fm.Show(this):是不支持的,那么可以将From2的构造函数多加一个参数:

    public Form OwnerForm;
    public Form2(int _Minimum,int _Maximum,Form _OwnerForm)//带参数,表示进度条的范围的最小值和最大值
    {
       InitializeComponent();
       progressBar1.Maximum=_Maximum;//设置范围最大值
       progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
       this.OwnerForm=_OwnerForm;
    }
    private void Form2_Load(object sender, EventArgs e)
    {
       this.OwnerForm.Enabled = false;//设置父窗体不可用
    }
    private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
       this.OwnerForm.Enabled = true;//回复父窗体为可用
    }

    Form1中相应的修改为:

    private void button1_Click(object sender, EventArgs e)
    {
       Form2 fm = new Form2(0,100,this);
       fm.Show();//设置父窗体
       for (int i = 0; i < 100; i++)
       {
         fm.setPos(i);//设置进度条位置
         Thread.Sleep(100);//睡眠时间为100
       }
       fm.Close();//关闭窗体
    }

    以上就是C#实现带百分比的进度条功能的示例代码分享的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:C# 带百分比 进度条
    上一篇:.NET存储PDF、Word和Excel到数据库的方法详解 下一篇:C#如何使用浏览按钮获得文件路径和文件夹路径的实现方法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• C语言入门之聊聊基础知识(数据类型、变量、函数、数组等)• c语言中node是什么意思• 聊聊如何利用纯C语言对EXCEL进行读写操作• C语言必背18个经典程序,C语言初学者必会(收藏)• asp.net验证码的简单制作
    1/1

    PHP中文网