Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#4.0

C# Alternative ProgressBar

4.00/5 (18 votes)
3 Sep 2013CPOL2 min read 54.1K   5.1K  
An alternative ProgressBar for C# with extra functionality

 

Introduction   

This is an alternative ProgressBar for C# that adds an Orientation option as well as the ability to draw text on the control.

 

After having ran into a scenario where I needed a ProgressBar with a vertical orientation, I was disappointed to find that Microsoft's default ProgressBar did not support changing the orientation. So, I decided to create a simple drop-in replacement that added a few extra features.  

The control is pretty basic and it works the same as the default ProgressBar.

For an example of this control's usage, please see the TestApp that is in this project's source zip file.

Using the Code  

Properties 

  • BorderColor - The color of the border around the control
  • BorderThickness - The width of the border around the control
  • CompositingMode - The CompositingMode of the control's Graphics  
  • CompositingQuality - The CompositingQuality of the control's Graphics
  • ErrorLog - If any errors have occurred (use HasErrors to check), this will contain information on the errors that have occurred     
  • HasErrors - If any errors have occurred, this will be set to true
  • InterpolationMode - The InterpolationMode of the control's Graphics 
  • Maximum - The maximum value  
  • Minimum - The minimum value  
  • Orientation - The Orientation of the control  
  • PixelOffsetMode - The PixelOffsetMode of the control's Graphics 
  • SmoothingMode - The SmoothingMode of the control's Graphics
  • TextColor - The color of the text that is drawn on the control
  • TextStyle - Determines what type of text is drawn on the control.
    • None - No text is shown   
    • Percentage - The percentage is shown. This is calculated via: double p = Convert.ToDouble((100d / maximum) * Value);  
    • Text - The string in the Text property of the control is shown (if the text is not null or all whitespace) 
    • Value - The current Value is shown 
    • ValueOverMaximum - The current Value and Maximum is shown via: String.Format("{0}/{1}", currentValue, maximum); 
  • Value - The current value   

Methods  

  • ClearErrors() -   Clears the ErrorLog string property and sets the HasErrors property to  

Events 

  • ValueChanged(object sender, ValueChangedEventArgs e) - Occurs when the Value of the ProgressBar has changed  

Example 

C#
private void Form1_Load(object sender, EventArgs e)
{
	basicProgressBar1.Maximum = 100;
	basicProgressBar1.Minimum = 0;
	basicProgressBar1.Value = 0;    
}
C#
private void basicProgressBar1_ValueChanged(object sender, ProgressBars.Basic.ValueChangedEventArgs e)
{
    txtValueChanged.Text = e.Value.ToString();
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)