# progress bar

I am using the following code for my progress bar.  It increments as progress is made but when it gets to the end of the cycle the green progress indicator is not all the way to the end. Why?

Dim percentage As Integer
For i As Integer = 1 to TotalCount

' ... some work ...

percentage = i / TotalCount * 100
ProgressBar1.Value = percentage ' <-- assuming default Min = 0, Max = 100
Application.DoEvents()
Next
###### Who is Participating?

x

PresidentCommented:
First of all, why all these percentage manipulations. Simply set the Maximum to TotalCount before going into the loop, and the following will work a little faster because it does not need to multiply and divide:

ProgressBar1.Maximum = TotalCount
For i As Integer = 1 To totalcount

' ... some work ...

ProgressBar1.Value = i
Application.DoEvents()
Next

Anyway, I tested your code as is, and it works flawlessly. The Progress Bar is filled when finished, although the last block might end up being smaller than the other ones because the width of the control might not leave enough space.

I suspect that your problem might be in   ' ... some work ...

Have you checked to make sure that after the loop. ProgressBar1.Maximum and percentage are at the same value? Is it possible that there is an Exit For somewhere in the loop?
0

Commented:
I'd bet because of rounding. Instead of doing a percent, set Max to whatever the max number of items are and increment value accordingly and see if it works.
Also try outputting the value of percentage to see if it every reaches 100.
0

Commented:
Not sure but your calculation of....

percentage = i / TotalCount * 100

Should be

percentage = (i / TotalCount) * 100
0

Middle School Assistant TeacherCommented:
Since division and multiplication are equal in the order of precedence for operators, the equation will be evaluated from left to right.  Your addition of parenthesis is changing nothing but aesthetics!...  =)
0

Commented:
True.  Sorry.
0

Author Commented:
ty
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.