Solved

dynamically change progress bar

Posted on 2006-11-03
5
269 Views
Last Modified: 2010-04-16
Hi the below code should ensure that my progress bar on the relevent import form accurately shows the progress of my import and that is my problem - getting the progress bar to accurately show the progress of the import. Please help!

public override bool Import ( string filename, params object[] additionalParameters )
            {
                  
                  for ( int i = 0; i < 100; i ++ ) //This is the problem line because there could be any number of records
                  {

                        // Ensure it hasn't been cancelled
                        if ( !this._cancelled )
                        {
                              this.Raise_ProgressUpdated ( "Importing", "Client " + i.ToString (), i );//This will show "Client" + record number
                                                                        //Do import here
                              System.Threading.Thread.Sleep ( 50 );
                        }
                        else
                        {
                              this.Raise_Complete ( false );
                              return false;
                        }

                  }

                  this.Raise_Complete ( true );

                  return true;

            }
0
Comment
Question by:JakeyCakes
  • 2
  • 2
5 Comments
 
LVL 8

Expert Comment

by:redpipe
ID: 17865401
Loop through the file first to get the correct number of rows, and then set the maximum of your progressbar:

public int NumberOfLines(string path)
{
      int num = 0;
      using (StreamReader sr = new StreamReader(path, Encoding.Default)) {
            while (sr.ReadLine() != null) {
                  num++;
            }
      }
      return num;
}
0
 
LVL 15

Accepted Solution

by:
ozymandias earned 250 total points
ID: 17865418
You first have to check the number of records

    int n = number_of_records;
    // here make a callback or raise an event to set the correct max value in the progress bar

then

for (int i =0; i < n; i++)
{
    etc;
}

0
 
LVL 15

Expert Comment

by:ozymandias
ID: 17865421
sorry, didn't see redpipe's post
0
 
LVL 8

Assisted Solution

by:redpipe
redpipe earned 250 total points
ID: 17865453
Another approach is to check if the maximum of the progressbar is reached and adjust it accordingly

using (StreamReader sr = new StreamReader(path, Encoding.Default)) {
  if ( !_cancelled )
    if(YourProgressBar.Value >= YourProgressBar.Maximum){
      //Choose an appropriate value for dynamic increase. Could also be 10% or whatever that suites your purpose
      YourProgressBar.Maximum = YourProgressBar.Maximum + 100;
      // => Continue doing your magic  :-)
    }
  } else {
  }
  // When your done importing or the user has cancelled. Set the progressbar to 100% or hide it, to indicate that your done
  YourProgressBar.Value = YourProgressBar.Maximum;
}
0
 

Author Comment

by:JakeyCakes
ID: 17866286
Thank you both for your help, I am going to split the points evenly.
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

708 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now