进度条如何显示进度条

进度条  时间:2021-08-08  阅读:()

如何显示进度条

使用C#显示进度条,涉及到多线程编程,我只探索了使用BackgroundWorker和Thread的方法,下面分别列出。

第一种:使用BackgroundWorker进行进度条控制 BackgroundWorker对象有三个主要的事件: DoWork - 当BackgroundWorker对象的多线程操作被执行时触发。

RunWokerCompleted - 当BackgroundWoker对象的多线程操作完成时触发。

ProgressChanged - 当BackgroundWorker对象的多线程操作状态改变时触发。

WorkerReportsProgress - 如果想让BackgroundWorker对象以异步的方式报告线程实时进度,必须将该属性的值设为true。

BackgroundWorker对象的ReportProgress方法用于向主线程返回后台线程执行的实时进度。

实例代码一,控制主窗体中的进度条显示 [csharp] view plaincopy public partial class Form1 : Form { /// /// 后台线程 /// private BackgroundWorker bkWorker = new BackgroundWorker(); /// /// 步进值 /// private int percentValue = 0; public Form1() { InitializeComponent(); bkWorker.WorkerReportsProgress = true; bkWorker.WorkerSupportsCancellation = true; bkWorker.DoWork += new DoWorkEventHandler(DoWork); bkWorker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged); bkWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompleteWork); } private void btnStart_Click(object sender, EventArgs e) { percentValue = 10; this.progressBar1.Maximum = 1000; // 执行后台操作 bkWorker.RunWorkerAsync(); } public void DoWork(object sender, DoWorkEventArgs e) { // 事件处理,指定处理函数 e.Result = ProcessProgress(bkWorker, e); } public void ProgessChanged(object sender, ProgressChangedEventArgs e) { // bkWorker.ReportProgress 会调用到这里,此处可以进行自定义报告方式 this.progressBar1.Value = e.ProgressPercentage; int percent = (int)(e.ProgressPercentage / percentValue); this.label1.Text = "处理进度:" + Convert.ToString(percent) + "%"; } public void CompleteWork(object sender, RunWorkerCompletedEventArgs e) { this.label1.Text = "处理完毕!"; } private int ProcessProgress(object sender, DoWorkEventArgs e) { for (int i = 0; i <= 1000; i++) { if (bkWorker.CancellationPending) { e.Cancel = true; return -1; } else { // 状态报告 bkWorker.ReportProgress(i); // 等待,用于UI刷新界面,很重要 System.Threading.Thread.Sleep(1); } } return -1; } }

c++ 简单进度条

给你个思路吧,写代码可能有点麻烦,1当前播放进度,先获取你播放文件的时长,然后设置用进度条的setrange32方法,处理wm_timer消息,调用getpos获得当前进度条位置,然后setpos,

2:如果是下载,基于网络tcp/ip的话,首先要获取发送的第一次数据包,一般里面都是封包吧,有文件的全部信息,你要获取文件的大小,后面的同上,

3:点击进度条,要处理的是wm_hscroll消息,用到一些数学上的计算,算出该播放那一段文件。

调用wmp的设置在哪播放,后面同上。

如何显示进度条

一、实现原理 采用一个完整的图片来作为进度条,每次当进度条改变时,采用先贴图再用背景色擦去不需显示的一段进度的方法来实现进度条的变化,可实现制作任何复杂美观的进度条。

二、准备工作 首先需准备一个如下图样式的进度条图片(当然你可以做你自己喜欢的样式)。

然后在窗体中加入一PictureBox控件,属性设置如下: AutoSize:True Appearance:Falt AutoRedraw:True ScaleMode: Pixel Picture:〃准备的图片〃 再加一辅助控件(只用于保存图片,方便快捷地使用进度条)Image,属性设置如下: Picture:〃准备的图片〃 Visible:FALSE 说明:本文所讲的进度条并不是狭义上那种安装程序中常见的仅表示一个事件进程的进度条,而是把那些条形的,表示一个量的大小的图示统称为进度条。

以此概念为基础让我们先来看看它的一些用途和类别,然后给出各类进度条的实现。

星梦云60元夏日促销,四川100G高防4H4G10M,西南高防月付特价

星梦云怎么样?星梦云好不好,资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器 。官方网站:点击访问星梦云官网活动方案:1、成都电信年中活动机(封锁UDP,不可解封):机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50...

CloudCone月付$48,MC机房可小时付费

CloudCone商家在前面的文章中也有多次介绍,他们家的VPS主机还是蛮有特点的,和我们熟悉的DO、Linode、VuLTR商家很相似可以采用小时时间计费,如果我们不满意且不需要可以删除机器,这样就不扣费,如果希望用的时候再开通。唯独比较吐槽的就是他们家的产品太过于单一,一来是只有云服务器,而且是机房就唯一的MC机房。CloudCone 这次四周年促销活动期间,商家有新增独立服务器业务。同样的C...

HaBangNet(6.95美元/月)美国vps 5TB流量/德国vps 香港双向CN2 GIA VPS

HaBangNet支持支付宝和微信支付,只是价格偏贵,之前国内用户并不多。这次HaBangNet推出三个特价套餐,其中美国机房和德国机房价格也还可以,但是香港机房虽然是双向CN2 GIA线路,但是还是贵的惊人,需要美国和德国机房的可以参考下。HaBangNet是一家成立于2014年的香港IDC商家,中文译名:哈邦网络公司,主营中国香港、新加坡、澳大利亚、荷兰、美国、德国机房的虚拟主机、vps、专用...

进度条为你推荐
efi系统分区请问现在新买的笔记本里EFI系统分区是干什么用的torrent文件怎么打开BT文件怎么打开数据管理制度求一份工时定量管理制度阶乘函数C语言中有计算阶乘的函数吗 不是自己写,,,是那种可以直接调用的函数手机壳生产厂家请问哪里有便宜的手机壳批发?谢谢!协亨协亨,话机世界,迪信通哪个买手机更便宜?tplink端口映射tp link路由怎么映射外网射击类网络游戏推荐几款射击类的网游阿里成斑马大股东阿里巴巴最大投资人是谁动态图片在线制作怎么在网上制作动态图片?
广西虚拟主机 免费申请网站域名 securitycenter hawkhost优惠码 美国翻墙 台湾服务器 优惠码 名片模板psd realvnc 2017年黑色星期五 促正网秒杀 空间出租 isp服务商 php空间购买 爱奇艺会员免费试用 万网主机管理 美国盐湖城 德隆中文网 万网空间 网页加速 更多