进度条如何显示进度条

进度条  时间: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 说明:本文所讲的进度条并不是狭义上那种安装程序中常见的仅表示一个事件进程的进度条,而是把那些条形的,表示一个量的大小的图示统称为进度条。

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

VPSDime7美元/月,美国达拉斯Windows VPS,2核4G/50GB SSD/2TB流量/Hyper-V虚拟化

VPSDime是2013年成立的国外VPS主机商,以大内存闻名业界,主营基于OpenVZ和KVM虚拟化的Linux套餐,大内存、10Gbps大带宽、大硬盘,有美国西雅图、达拉斯、新泽西、英国、荷兰机房可选。在上个月搞了一款达拉斯Linux系统VPS促销,详情查看:VPSDime夏季促销:美国达拉斯VPS/2G内存/2核/20gSSD/1T流量/$20/年,此次推出一款Windows VPS,依然是...

PIGYun月付14.4元起,美国洛杉矶/韩国VPS七月6折

PIGYun是成立于2019年的国人商家,提供香港、韩国和美西CUVIP-9929等机房线路基于KVM架构的VPS主机,本月商家针对韩国首尔、美国洛杉矶CUVIP-AS29、GIA回程带防御等多条线路VPS提供6-8.5折优惠码,优惠后韩国首尔CN2混合BGP特惠型/美国洛杉矶GIA回程带10Gbps攻击防御VPS主机最低每月14.4元起。下面列出几款不同机房VPS主机配置信息,请留意不同优惠码。...

HostKvm四月优惠:VPS主机全场八折,香港/美国洛杉矶机房$5.2/月起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...

进度条为你推荐
RFIRFI整流,什么是RFI整流removechild解释下这条语句this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);微信红包图片怎么发微信要红包图片apple以旧换新苹果以旧换新怎么换?价格是怎样的cs躲猫猫cs1.6捉迷藏模式怎么玩啊diskgenius免费版diskgenius 破解版?visio使用教程如何使用visio2013如何绘制UML图qsv视频格式转换器手机qsv怎么转换成mp4格式转换器数据管理制度网络管理制度.免杀远控远控+免杀,到底是怎么一回事?
双线虚拟主机 com域名价格 万网域名代理 免费动态域名 windows主机 2014年感恩节 42u机柜尺寸 表单样式 好看的留言 win8升级win10正式版 中国特价网 dux 数字域名 什么是刀片服务器 空间论坛 lol台服官网 卡巴斯基破解版 免费私人服务器 raid10 路由跟踪 更多