Visual Basic: Windows Controls

ProgressBar Control

See Also    Example    Properties    Methods    Events

The ProgressBar control shows the progress of a lengthy operation by filling a rectangle with chunks from left to right.

Syntax

ProgressBar

Remarks

The ProgressBar control monitors an operation's progress toward completion.

A ProgressBar control has a range and a current position. The range represents the entire duration of the operation. The current position represents the progress the application has made toward completing the operation. The Max and Min properties set the limits of the range. The Value property specifies the current position within that range. Because chunks are used to fill in the control, the amount filled in only approximates the Value property's current setting. Based on the control's size, the Value property determines when to display the next chunk.

The ProgressBar control's Height and Width properties determine the number and size of the chunks that fill the control. The more chunks, the more accurately the control portrays an operation's progress. To increase the number of chunks displayed, decrease the control's Height or increase its Width. The BorderStyle property setting also affects the number and size of the chunks. To accommodate a border, the chunk size becomes smaller.

You can use the Align property with the ProgressBar control to automatically position it at the top or bottom of the form.

Tip   To shrink the chunk size until the progress increments most closely match actual progress values, make the ProgressBar control at least 12 times wider than its height.

The following example shows how to use the ProgressBar control, named ProgressBar1, to show the progress of a lengthy operation of a large array. Put a CommandButton control and a ProgressBar control on a form. The Align property in the sample code positions the ProgressBar control along the bottom of the form. The ProgressBar control displays no text.

Private Sub Command1_Click()
   Dim Counter As Integer
   Dim Workarea(250) As String
   ProgressBar1.Min = LBound(Workarea)
   ProgressBar1.Max = UBound(Workarea)
   ProgressBar1.Visible = True

'Set the Progress's Value to Min.
   ProgressBar1.Value = ProgressBar1.Min

'Loop through the array.
   For Counter = LBound(Workarea) To UBound(Workarea)
      'Set initial values for each item in the array.
      Workarea(Counter) = "Initial value" & Counter
      ProgressBar1.Value = Counter
   Next Counter
   ProgressBar1.Visible = False
   ProgressBar1.Value = ProgressBar1.Min
End Sub

Private Sub Form_Load()
   ProgressBar1.Align = vbAlignBottom
   ProgressBar1.Visible = False
   Command1.Caption = "Initialize array"
End Sub

Distribution Note   The ProgressBar control is part of a group of ActiveX controls that are found in the MSCOMCTL.OCX file. To use the ProgressBar control in your application, you must add the MSCOMCTL.OCX file to the project. When distributing your application, install the MSCOMCTL.OCX file in the user's Microsoft Windows System or System32 directory. For more information on how to add an ActiveX control to a project, see the Programmer's Guide.