当应用程序执行复制文件或打印文档等任务时,如果没有给用户任何反馈,应用程序的用户可能会认为应用程序无响应。 通过使用应用程序中, ProgressBar 可以通知用户应用程序正在执行较长的任务,并且应用程序仍在响应。
属性Maximum、Minimum定义表示任务进度的值范围。 该 Minimum 属性通常设置为值 0, Maximum 并且该属性通常设置为指示任务完成的值。 例如,若要在复制一组文件时正确显示进度, Maximum 可以将该属性设置为要复制的文件总数。
该 Value 属性表示应用程序完成操作的进度。 唯一的近似属性的Value当前值所显示ProgressBar的值。 根据 ProgressBar大小,该 Value 属性确定何时显示下一个块或增加条形图的大小。
除了直接更改Value属性之外,可以通过多种方式修改所显示ProgressBar的值。 可以使用该 Step 属性指定特定值来递增 Value 属性,然后调用 PerformStep 该方法来递增该值。 若要改变增量值,可以使用该方法 Increment 并指定一个要递增 Value 属性的值。
控件ProgressBar的Style属性有三种样式:
Blocks:从左到右增加步骤的分段块。
Continuous:从左到右填充的连续条。
Marquee:以选框方式滚动的 ProgressBar 块。
常用属性
属性名称 | 说明 |
MarqueeAnimationSpeed |
获取或设置进度块在进度栏内滚动所用的时间段,以毫秒为单位。 |
Maximum | 获取或设置控件范围的最大值。 |
Minimum | 获取或设置控件范围的最小值。 |
Step | 获取或设置调用 PerformStep() 方法增加进度栏的当前位置时所根据的数量。 |
Style | 获取或设置在进度栏上指示进度应使用的方式。 |
Value | 获取或设置进度栏的当前位置。 |
下面演示一下如何按照文件拷贝数量来显示进度
Vb.Net |
Private Sub CopyWithProgress(ByVal pBar1 As ProgressBar, ByVal filenames As String()) '显示ProgressBar控件. pBar1.Visible = True '将“最小值”设置为1表示要复制的第一个文件。 pBar1.Minimum = 1 '将最大值设置为要复制的文件总数。 pBar1.Maximum = filenames.Length '设置ProgressBar的初始值。 pBar1.Value = 1 '将步骤属性设置为值1以表示要复制的每个文件。 pBar1.Step = 1 '循环浏览所有要复制的文件。 For x As Integer = 1 To filenames.Length '复制文件,如果成功,则递增ProgressBar。 If CopyFile(filenames(x - 1)) = True Then '在ProgressBar上执行增量。 pBar1.PerformStep() End If Next End Sub |
C# |
private void CopyWithProgress(ProgressBar pBar1,string[] filenames) { // 显示ProgressBar控件. pBar1.Visible = true; // 将“最小值”设置为1表示要复制的第一个文件。 pBar1.Minimum = 1; // 将最大值设置为要复制的文件总数。 pBar1.Maximum = filenames.Length; // 设置ProgressBar的初始值。 pBar1.Value = 1; // 将步骤属性设置为值1以表示要复制的每个文件。 pBar1.Step = 1; // 循环浏览所有要复制的文件。 for (int x = 1; x <= filenames.Length; x++) { // 复制文件,如果成功,则递增ProgressBar。 if(CopyFile(filenames[x-1]) == true) { // 在ProgressBar上执行增量。 pBar1.PerformStep(); } } } |