C# ProgressBar Example

Use ProgressBar in Windows Forms with a background thread to indicate progress.

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—it does not block the interface.

Example. 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.BackgroundWorker
Note: We need the Load event handler, the DoWork event handler, and the ProgressChanged event handler.
RunWorkerAsync: In Form1_Load, please add a method call to the RunWorkerAsync method on the BackgroundWorker instance. DoWork will begin.
DoWork: Here we loop over the numbers 1 through 100. We call the ReportProgress method on the BackgroundWorker instance.
Finally: In ProgressChanged, we set the value of the ProgressBar to the ProgressPercentage property of the ProgressChangedEventArgs argument.
Example that uses ProgressBar and BackgroundWorker: C# 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(); } } }

Color. 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. It is often better to use the default color.
Note: In this screenshot, we see a yellow bar instead of the default blue bar. This is likely a bad design decision.

Summary. The ProgressBar control is often used in conjunction with a threading mechanism such as BackgroundWorker. With its many options, the ProgressBar makes a suitable widget for letting your users know the application is still active.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.