如何显示进度条

如题所述

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

第一种:使用BackgroundWorker进行进度条控制
BackgroundWorker对象有三个主要的事件:
DoWork - 当BackgroundWorker对象的多线程操作被执行时触发。
RunWokerCompleted - 当BackgroundWoker对象的多线程操作完成时触发。
ProgressChanged - 当BackgroundWorker对象的多线程操作状态改变时触发。
WorkerReportsProgress - 如果想让BackgroundWorker对象以异步的方式报告线程实时进度,必须将该属性的值设为true。
BackgroundWorker对象的ReportProgress方法用于向主线程返回后台线程执行的实时进度。

实例代码一,控制主窗体中的进度条显示

[csharp] view plaincopy
public partial class Form1 : Form
{
/// <summary>
/// 后台线程
/// </summary>
private BackgroundWorker bkWorker = new BackgroundWorker();

/// <summary>
/// 步进值
/// </summary>
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;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

怎么显示项目的实时进度条
12、在设置单元格格式点击数字-百分比,如下图:13、确定之后,就可以看到我们的项目进度条了,这个进度条会每天实时的更新,是不是很酷炫呢。

华为手机怎样显示充电进度条?
1、解锁手机屏幕,打开手机桌面上的设置图标。2、在设置界面中,找到并点击电池选项。3、进去电池设置界面之后,下滑至底部,找到“显示剩余电量百分比”选项。4、最后将“显示剩余电量百分比”选项右侧的按钮点击开启,电量就以百分比的形式显示充电进度了。上述就是关于华为如何显示充电进度的内容介绍了。

excel如何显示加载进度excel如何显示加载进度信息
1、双击鼠标左键,打开需要编辑操作的表格,点击鼠标左键,将光标定位在需要插入进度条的单元格。2、点击上方工具栏中的“开始”选项卡中的“样式”选择中的“条件格式”的选项下方的箭头。3、点击“条件格式”后,在所弹出的窗口中点击选择其中的第三个选项“数据条”的选项,用于显示其中的进度。4、...

windows10显示任务栏进度条
1、进入电脑桌面,然后用电脑鼠标点击桌面左下角的开始菜单按钮,这个时候会弹出一个选项列表,我们可以直接点击选择属性,然后选择里面的系统。2、在页面左侧找到“通知和操作”,找到后直接选择,然后在任务栏上找到“选择”右边Which icons to display”,找到后点击。3、只需在页面右侧找到开关,点击打开...

表格中如何添加进度条?
1、首先要准备好表格,这里演示做个一个很简单的收款表,主要对最后一列进行操作;2、选中最后一列的全部空白单元格;3、选中区域任意位置右键点击,弹出菜单,选择设置单元格格式;4、在一个“数字”标签页,将单元格显示格式改为百分比,小数位数为1;5、然后在第一行的比例单元格添加公式,即=C3\/...

Excel表格怎么将百分比显示为进度条呢?
Excel通常用在统计数据中,那怎么把百分比用进度条显示出来呢?方法:新建Excel。在Excel中输入需要整理的一些员工的姓名和员工所对应的绩效程度。将完成的绩效的格式改为百分比,选中绩效一列,右击选择【设置单元格格式】,再选择【百分比】,将小数设为【0】。点击确定即可完成绩效百分比。选中员工所完成的...

视频循环播放怎么不显示进度
根据查询IT之家。1、进度条没有显示,可尝试按下空格键或鼠标左键,看是否能够调出,进度条是视频播放器中的一个常见功能,用于显示视频播放的进度和当前播放位置。2、还是没有显示,可尝试在播放器的设置中查找进度条选项,打开进度条显示。

Focusky如何显示或隐藏底部播放进度条
1. 新建工程,编辑演示文稿,在菜单栏中找到“选项”,如图1所示:   (图1)2. 点击“选项”按钮,然后选择“展示设置”,找到“底部进度条设置”,如图2所示:   (图2)3. 如果是想显示进度条,则勾选“显示底部进步条”,不显示则不勾选该选项,如图3所示...

excel完成率进度条怎么弄
首先,打开包含所需数据的Excel文档,并选中显示进度条的百分比数值所在的单元格区域。接着,进入Excel的“开始”选项卡,找到并点击“条件格式”按钮。在展开的下拉菜单中,选择“数据条”选项,然后点击“其他规则”以自定义进度条样式。在弹出的“格式数据条”对话框中,勾选“仅显示数据条”选项,这样...

抖音进度条怎么弄出来
要将抖音的进度条显示出来,可以通过在抖音视频播放界面下方找到进度条控件来实现。首先,打开抖音应用并选择一个视频进行播放。在视频播放界面的下方,你会看到一个控件条,它包括点赞、评论、分享等按钮。在这个控件条的右侧,你可以找到一个看起来像是时间轴的图标,这就是进度条控件。通过拖动进度条...

相似回答