C 进度条使用

C 进度条使用C 进度条的使用 Winform 自定义使用进度条


前言:

介绍C#自带的Progressbar控件的调用方法,对程序运行的进度进行提示。


内容:

接下来,介绍进度条在Winform界面中具体的应用和步骤。

  1. 在项目中新建一个Winform界面,上面放一个ProgressBar和label控件,默认命名。
    C 进度条使用
    重写构造函数

    添加一个setPos函数

    给界面添加一个Load事件,一个FormClosed事件

     public FrmProcsBar(int _Minimun, int _Maximum)
            {
                InitializeComponent();
                progressBar1.Maximum = _Maximum;//设置范围最大值
                progressBar1.Value = progressBar1.Minimum = _Minimun;//设置范围最小值
            }
    
            public void setPos(int value)
            {
                if (value < progressBar1.Maximum)
                {
                    progressBar1.Value = value;//设置进度值
                    label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";
                }
                Application.DoEvents();//重点,必须加上,否则父子窗体都假死
            }
    
            private void FrmProcsBar_Load(object sender, EventArgs e)
            {
                this.Owner.Enabled = false;
    
            }
    
            private void FrmProcsBar_FormClosed(object sender, FormClosedEventArgs e)
            {
                this.Owner.Enabled = true;
            }












  2. 在主界面添加一个调用的按钮
    C 进度条使用

    首先在主界面公用区域创建一个进度条界面的对象,以及调用的委托
     

      //定义一个进度条对象,以及一个调用的委托
            FrmProcsBar fm;
            delegate void EventJisuan(object sender, EventArgs e);
    
            private void button1_Click(object sender, EventArgs e)
            {
                fm = new FrmProcsBar(0, 101);
                this.Invoke(new EventJisuan(Jisuan), sender, e);
    
                MessageBox.Show("运行结束");
            }
    
            private void Jisuan(object sender, EventArgs e)
            {
                fm.Show(this);
                fm.setPos(0);//设置进度条位置0%
    
                //需要加载进度的内容
    
                for (int i = 0; i < 200000000; i++) 
                {
                    i++;
                }
    
                fm.setPos(20);//设置进度条位置20%
    
                for (int i = 0; i < 200000000; i++)
                {
                    i++;
                }
    
                fm.setPos(40);//设置进度条位置40%
    
                for (int i = 0; i < 200000000; i++)
                {
                    i++;
                }
    
                fm.setPos(60);//设置进度条位置60%
    
                for (int i = 0; i < 200000000; i++)
                {
                    i++;
                }
    
                fm.setPos(80);//设置进度条位置80%
                
                for (int i = 0; i < 200000000; i++)
                {
                    i++;
                }
                fm.setPos(100);//设置进度条位置100%
                Thread.Sleep(300);
                fm.Close();
            }









运行效果:


结束语:

例总的来说,就是进度条需要放在一个新建的Form上,然后再这个Form里面加好内容,然后使用委托来开辟一个进度条同时运行的线程。估算好要加进度条所有内容的进度百分比,添加百分比直到结束就可以。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211438.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:26
下一篇 2026年3月18日 下午10:26


相关推荐

  • MySQL把字符串转化为数字的三种方式[通俗易懂]

    MySQL把字符串转化为数字的三种方式[通俗易懂]问题出现当我用navicat查询时,在varchar字段上where查询使用的是int类型的0【忘记打引号了…】,结果查出一堆其他的字符串,很奇怪。首先,我想到的是类似于betweenand,我以为也是比较的首字母,不过后面我发现并不是的。百度搜素之后发现是在这查询的时候MySQL把字符串转化为数字,并且有几种方式:1.方法一:字段值+0MySql会根据上下文自动转换类型,这里会将被本来是字符类型的字段值以数值型返回,如果字段存放的值为数值字符,则会转换为数值型返回,如果字段存

    2022年5月30日
    46
  • apache tomcat 闪退[通俗易懂]

    apache tomcat 闪退[通俗易懂]网上介绍了很多解决办法,下面是我自己的解决办法:1. 我的apache-tomcat是解压缩版(解压了后配置一下就可以用)。 路径:D:\apache-tomcat-8.0.5\ 2. 找到conf文件夹,打开server.xml文件,下拉右手边的滚动条至最下面。 3. 查看上面有没有配置。 4. 我原来有个项目在这个位置配置过,删除后,再运行就没有再出现闪退的

    2022年5月7日
    94
  • 堆排序算法——C/C++

    堆排序算法——C/C++堆排序1、算法思想堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、实现原理要实现从小到大的排序,就要建立大顶堆,即父节点比子节点都要大。2.1、初始化数组,创建大顶堆。大顶堆的创建从下往上比较,不能直接用无序数组从根节点比较,否则有的不符合大顶堆的定义。…

    2022年7月12日
    24
  • JavaScript中addEventListener事件介绍

    JavaScript中addEventListener事件介绍前言下面是关于 JavaScript 中 addEventList 事件的一些介绍 主要转载自网络 如果用 jQuery 库的话 有相应的 click mousedown 等事件绑定方法可参考使用 1 nbsp addEventList 介绍 addEventList 用于注册事件处理程序 IE 中为 nbsp attachEvent 我们为什

    2026年3月19日
    3
  • dumpbin的命令

    dumpbin的命令1所有的命令用法:DUMPBIN[选项][文件]  选项:   /ALL   /ARCHIVEMEMBERS   /CLRHEADER   /DEPENDENTS   /DIRECTIVES   /DISASM[:{BYTES|NOBYTES}]   /ERRORREPORT:{NONE|PROMPT|QU

    2022年6月19日
    39
  • sql2005 数据库还原,备份集中的数据库备份与现有的数据库不同,解决办法

    sql2005 数据库还原,备份集中的数据库备份与现有的数据库不同,解决办法在“选项”中选择“覆盖现有数据库”,否则就会出现“备份集中的数据库备份与现有的数据库”的问题。 

    2022年5月3日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号