Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 界面类控件 >
ProgressBar(进度条)

当应用程序执行复制文件或打印文档等任务时,如果没有给用户任何反馈,应用程序的用户可能会认为应用程序无响应。 通过使用应用程序中, 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();
        }
    }
}