?
Solved

progress bar

Posted on 2013-05-23
6
Medium Priority
?
431 Views
Last Modified: 2013-06-20
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
0
Comment
Question by:vbnetcoder
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 25

Expert Comment

by:SStory
ID: 39191027
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
 
LVL 1

Expert Comment

by:dbote
ID: 39192130
Not sure but your calculation of....

percentage = i / TotalCount * 100

Should be

percentage = (i / TotalCount) * 100
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 39192307
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
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
LVL 1

Expert Comment

by:dbote
ID: 39192453
True.  Sorry.
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 2000 total points
ID: 39197883
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
 

Author Closing Comment

by:vbnetcoder
ID: 39263318
ty
0

Featured Post

Command Line Tips and Tricks

The command line is a powerful tool at the disposal of every Linux user. Although Linux distros come with beautiful user interfaces, it's worthwhile to learn the command line because it allows you to do a number of things that you otherwise cannot do from the GUI.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question