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 GraphicsErrorLog
- 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 trueInterpolationMode
- 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 GraphicsTextColor
- 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
Events
- ValueChanged(object sender, ValueChangedEventArgs e) - Occurs when the Value of the ProgressBar has changed
Example
private void Form1_Load(object sender, EventArgs e)
{
basicProgressBar1.Maximum = 100;
basicProgressBar1.Minimum = 0;
basicProgressBar1.Value = 0;
}
private void basicProgressBar1_ValueChanged(object sender, ProgressBars.Basic.ValueChangedEventArgs e)
{
txtValueChanged.Text = e.Value.ToString();
}