C# 进度条使用

2023-11-11


前言:

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


内容:

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

  1. 在项目中新建一个Winform界面,上面放一个ProgressBar和label控件,默认命名。

    重写构造函数

    添加一个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. 在主界面添加一个调用的按钮


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

    其次在按钮的单击事件中加入代码

    调用函数,使用进度条显示处理进度的内容
     

      //定义一个进度条对象,以及一个调用的委托
            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();
            }


运行效果:

例运行程序,点击按钮之后,开始自加计算,大概需要5秒左右


结束语:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 进度条使用 的相关文章

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • Java 集合之Collection

    首先我们看下Collection的结构图 从结构图上我们可以看到Collection集合下面有3个比较大的实现 Set List Queue在日常开放过程中我们比较常用的是Set与List 针对Queue我在之前的博客中也有所介绍 在这里不
  • 登录界面设计测试---适合背诵

    主要从功能 易用性 性能 安全 兼容 一 功能测试 1 7 case 主要体现 用户名和密码 账号问题 8 12 case 主要体现 验证 图片或短信 13 20 case 主要体现 特别场景 1 输入已注册的用户名和正确的密码 验证是否成
  • Window的Java环境安装

    一 Window的Java环境安装 1 下载百度网盘的Java环境jdk 8u131 windows x64 exe 2 点击jdk 8u131 windows x64 exe 下一步 3 更改Java你想安装位置 点击下一步 4 Java
  • MATLAB反三角函数arcsecx, arccscx, arctanx, arccotx, arcsinx, arccosx绘图表示

    matlab源代码 依次为 arcsecx arccscx arctanx arccotx arcsinx arccosx figure 1 x 0 0 01 pi y sec x plot y x title arcsecx set gc
  • (一)调试RocketMq源码

    文章目录 一 启动NameServer 1 1namesrv模块找到NamesrvStartup java 1 2修改配置文件目录 1 3启动NamesrvStartup java 二 配置Broker 2 1配置BrokerStartup
  • Ubuntu Linux中hostname`命令

    当然 让我们将关于在Ubuntu Linux中理解hostname的知识转化为列表形式 参考 https www howtouseubuntu com network change hostname in ubuntu linux 定义 h
  • 第四章 Linux实用操作

    1 软件安装 1 1 CentOS 1 2 Ubuntu 2 systemctl控制软件启动关闭 mp4 3 软链接 4 日期和时区 4 1 date命令 4 2 ntp程序 4 3 小结 5 IP地址和主机名 6 配置Linux固定IP地
  • 【干货】PCB线宽与电流关系

    以下总结了八种电流与线宽的关系公式 表和计算公式 虽然各不相同 大体相近 但大家可以在实际的PCB板设计中 综合考虑PCB板的大小 通过电流 选择一个合适的线宽 PCB电流与线宽 PCB载流能力的计算一直缺乏权威的技术方法 公式 经验丰富C
  • MoCo v1 论文笔记

    Momentum Contrast for Unsupervised Visual Representation Learning 论文笔记 DETR 论文笔记 Momentum Contrast for Unsupervised Visu
  • 三因素方差分析_【科研加油站】SPSS操作之三因素方差分析

    点击上方蓝字 轻松关注我们 以下内容转载自 医咖会 微信公众号 medieco ykh 作者Jane 上一期我们讨论了双因素方差分析 本期 科研加油站 栏目 我们一起来探讨三因素方差分析 问题与数据 某研究者想研究某类新药降低胆固醇水平的效
  • CData API Server全面且文档完整的API

    CData API Server全面且文档完整的API 使用现有业务信息创建API 连接到任何SQL以及NoSQL数据库以及API服务器 都会立即生成灵活 全面且文档完整的API 发现数据集成的潜力 API服务器API服务器提供了在企业AP
  • register的用法c语言,C语言中auto,static,register,extern存储类型的用法

    在C语言中提供的存储类型说明符有auto extern static register 说明的四种存储类别 四种存储类别说明符有两种存储期 自动存储期和静态存储期 其中auto和register对应自动存储期 具有自动存储期的变量在进入声明
  • Unity脚本API—Transform 变换

    场景中的每一个对象都有一个Transform 用于储存并操控物体的位置 旋转和缩放 每一个Transform可以有一个父级 允许你分层次应用位置 旋转和缩放 可以在Hierarchy面板查看层次关系 他们也支持计数器 enumerator
  • AGV调度系统/两阶段算法模拟源代码 地图建模

    多 AGV调度系统 两阶段算法模拟源代码 地图建模c openTCS1 AGV调度系统源码 OpenTCS OpenTCS是一个开源的AGV调度系统程序 能给初入AGV行业的人士一些帮助 该实例是包含源码的程序 可成功运行 2 openTC
  • UE4 蓝图数组反转节点ReverseforEachLoop的坑

    由于蓝图没有直接反转数组的节点类似于C 的reverse 所以只好用ReverseforEachLoop这个节点 但是这个节点有个坑 就是ArrayIndex是从数组末尾元素下标开始输出 并非是从0开始 因此如果要用到ArrayIndex得
  • 记录一次JVM发生OOM问题的解决,包括jvisualvm工具的使用,以及对GC的理解等

    目录 OOM原因分析 解决 利用hprof文件分析的步骤 结合jvisualvm工具 jvisualvm实时监控本地jvm jvisualvm实时监控远程jvm 对于JVM的GC理解 Minor GC Full GC 常用JVM参数配置 查
  • WIN32 资源

    首先解释一下句柄 win32中的句柄在数值上表示一个32位的数 用来标识应用程序 进程中不同对象以及同类对象中的不同实例 而所谓实例就是指被实例化的对象 实例化的过程就是通过类创建对象的过程 实例化对象的目地是为对象开辟内存空间 所以句柄是
  • Java - 常用类 - BigInteger 和 BigDecimal

    文章目录 BigInteger 和 BigDecimal 介绍 应用场景 BigInteger 和 BigDecimal 介绍 应用场景 BigInteger适合保存比较大的整型 BigDecimal适合保存精度更高的浮点型 小数 pack
  • 智能人机交互

    前言 随着移动机器人越来越多地走向实 际应用 需要提高机器人与人类之 间的协同水平 实现机器人与人类的共融 一 人机交互的三个级别 二 火星车的遥操作控制 火星车的遥操作控制 超大时延 地面团队将命令序列发至火 星车 如要求火星车往前行驶1
  • C# 进度条使用

    前言 介绍C 自带的Progressbar控件的调用方法 对程序运行的进度进行提示 内容 接下来 介绍进度条在Winform界面中具体的应用和步骤 在项目中新建一个Winform界面 上面放一个ProgressBar和label控件 默认命