ProgressBar
This indicates the progress of an operation. ProgressBar
is best used on a long-running computation or task. And BackgroundWorker
is often used to perform that task.
Please add a ProgressBar
control to your Windows Forms program by double-clicking on the ProgressBar
entry in the Toolbox.
For this example, we also need a BackgroundWorker
—add one and then create the event handlers required. We need the Load, DoWork
and ProgressChanged
event handlers.
Form1_Load
, please add a method call to the RunWorkerAsync
method on the BackgroundWorker
instance. DoWork
will begin.ReportProgress
method on the BackgroundWorker
instance.ProgressChanged
, we set the value of the ProgressBar
to the ProgressPercentage
property of the ProgressChangedEventArgs
argument.using System.ComponentModel; using System.Threading; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, System.EventArgs e) { // Start the BackgroundWorker. backgroundWorker1.RunWorkerAsync(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { for (int i = 1; i <= 100; i++) { // Wait 100 milliseconds. Thread.Sleep(100); // Report progress. backgroundWorker1.ReportProgress(i); } } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { // Change the value of the ProgressBar to the BackgroundWorker progress. progressBar1.Value = e.ProgressPercentage; // Set the text. this.Text = e.ProgressPercentage.ToString(); } } }
One of the useful properties on the ProgressBar
is the ForeColor
property. This can be set to a Color value to change the color of the bar itself that is drawn on the screen.
The ProgressBar
control is often used with a threading mechanism such as BackgroundWorker
. It helps let your users know the application is still active.