进度条如何显示进度条

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

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

HostKvm:夏季优惠,香港云地/韩国vps终身7折,线路好/机器稳/适合做站

hostkvm怎么样?hostkvm是一家国内老牌主机商家,商家主要销售KVM架构的VPS,目前有美国、日本、韩国、中国香港等地的服务,站长目前还持有他家香港CN2线路的套餐,已经用了一年多了,除了前段时间香港被整段攻击以外,一直非常稳定,是做站的不二选择,目前商家针对香港云地和韩国机房的套餐进行7折优惠,其他套餐为8折,商家支持paypal和支付宝付款。点击进入:hostkvm官方网站地址hos...

PhotonVPS:美国Linux VPS半价促销2.5美元/月起,可选美国洛杉矶/达拉斯/芝加哥/阿什本等四机房

photonvps怎么样?photonvps现在针对旗下美国vps推出半价促销优惠活动,2.5美元/月起,免费10Gbps DDoS防御,Linux系统,机房可选美国洛杉矶、达拉斯、芝加哥、阿什本。以前觉得老牌商家PhotonVPS贵的朋友可以先入手一个月PhotonVPS美国Linux VPS试试了。PhotonVPS允许合法大人内容,支持支付宝、paypal和信用卡,30天退款保证。Photo...

tmhhost(100元/季)自带windows系统,香港(三网)cn2 gia、日本cn2、韩国cn2、美国(三网)cn2 gia、美国cn2gia200G高防

tmhhost可谓是相当熟悉国内网络情况(资质方面:ISP\ICP\工商齐备),专业售卖海外高端优质线路的云服务器和独立服务器,包括了:香港的三网cn2 gia、日本 cn2、日本软银云服务器、韩国CN2、美国三网cn2 gia 云服务器、美国 cn2 gia +200G高防的。另外还有国内云服务器:镇江BGP 大连BGP数据盘和系统盘分开,自带windows系统,支持支付宝付款和微信,简直就是专...

进度条为你推荐
efi系统分区EFI系统分区这种方法删不掉?trapezoidtearing strength是什么意思安全防护安全防护措施provisioned手机显示sim not provisioned mm#2,是什么意思apple以旧换新苹果手机以旧换新 是怎么换的什么要求scanf返回值Scanf()函数的使用密码设置怎样登录怎样设置密码安卓模拟器哪个好用PC平台的安卓模拟器哪个最好用qsv视频格式转换器爱奇艺QSV转换工具怎么将qsv格式转换mp4视频微店是什么微店和微商有什么区别呢
西安服务器租用 wordpress主机 java主机 cdn服务器 鲨鱼机 光棍节日志 xfce 搜狗抢票助手 腾讯云分析 秒杀预告 共享主机 1美金 卡巴斯基是免费的吗 raid10 免费外链相册 上海电信测速 阿里云邮箱登陆地址 群英网络 97rb 网络速度 更多