Color ProgressBar






4.60/5 (43 votes)
May 1, 2004
2 min read

328487

16696
An attractive and fancier ProgressBar.
Introduction
This is a fairly simple Progress Bar control inherited from Windows.Forms.Control
. The reason I reinvented this "wheel" is I don't like the looks of traditional ProgressBar
provided in VS.NET. My ColorProgressBar
looks more attractive and fancier, yet keeps the functionalities of old ProgressBar
. I hope I will get some genuine comments or suggestion from you.
Complete source code can be downloaded from the link above.
Control Properties
BarColor
The primary color of
ColorProgressBar
.BorderColor
The border color of
ColorProgressBar
.FillStyle
Bar styles, "
Solid
" or "Dashed
".Maximum
The maximum value of
ColorProgressBar
.Minimum
The minimum value or the initial value of
ColorProgressBar
.Value
The current value of
ColorProgressBar
.Step
The value of each increment or decrement when you call methods
PerformStep()
andPerformStepBack()
.
Control Methods
PerformStep()
Call the
PerformStep()
method to increase the value set in theStep
property.PerformStepBack()
Call the
PerformStepBack()
method to decrease the value set in theStep
property.Increment(int value)
Call the
Increment()
method to increase the integer value you specify.Decrement(int value)
Call the
Decrement()
method to decrease the integer value you specify.
Example
- See snapshot above
A timer is used to fake progress.
//
// Control declarations
//
this.cpb1 = new ColorProgressBar.ColorProgressBar();
this.cpb2 = new ColorProgressBar.ColorProgressBar();
this.cpb3 = new ColorProgressBar.ColorProgressBar();
this.cpb4 = new ColorProgressBar.ColorProgressBar();
this.cpb5 = new ColorProgressBar.ColorProgressBar();
this.cpb6 = new ColorProgressBar.ColorProgressBar();
this.timer1 = new System.Windows.Forms.Timer(this.components);
//
// cpb1
//
this.cpb1.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(255)),
((System.Byte)(128)), ((System.Byte)(128)));
this.cpb1.BorderColor = System.Drawing.Color.Black;
this.cpb1.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Dashed;
this.cpb1.Location = new System.Drawing.Point(56, 48);
this.cpb1.Maximum = 100;
this.cpb1.Minimum = 0;
this.cpb1.Name = "cpb1";
this.cpb1.Size = new System.Drawing.Size(150, 15);
this.cpb1.Step = 10;
this.cpb1.TabIndex = 0;
this.cpb1.Value = 0;
//
// cpb2
//
this.cpb2.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(255)),
((System.Byte)(255)), ((System.Byte)(128)));
this.cpb2.BorderColor = System.Drawing.Color.Black;
this.cpb2.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Solid;
this.cpb2.Location = new System.Drawing.Point(56, 72);
this.cpb2.Maximum = 100;
this.cpb2.Minimum = 0;
this.cpb2.Name = "cpb2";
this.cpb2.Size = new System.Drawing.Size(150, 15);
this.cpb2.Step = 10;
this.cpb2.TabIndex = 1;
this.cpb2.Value = 100;
//
// cpb3
//
this.cpb3.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(128)),
((System.Byte)(255)), ((System.Byte)(128)));
this.cpb3.BorderColor = System.Drawing.Color.Black;
this.cpb3.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Dashed;
this.cpb3.Location = new System.Drawing.Point(56, 104);
this.cpb3.Maximum = 100;
this.cpb3.Minimum = 0;
this.cpb3.Name = "cpb3";
this.cpb3.Size = new System.Drawing.Size(192, 24);
this.cpb3.Step = 10;
this.cpb3.TabIndex = 2;
this.cpb3.Value = 0;
//
// cpb4
//
this.cpb4.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(128)),
((System.Byte)(255)), ((System.Byte)(255)));
this.cpb4.BorderColor = System.Drawing.Color.Black;
this.cpb4.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Solid;
this.cpb4.Location = new System.Drawing.Point(56, 144);
this.cpb4.Maximum = 100;
this.cpb4.Minimum = 0;
this.cpb4.Name = "cpb4";
this.cpb4.Size = new System.Drawing.Size(192, 24);
this.cpb4.Step = 10;
this.cpb4.TabIndex = 3;
this.cpb4.Value = 100;
//
// cpb5
//
this.cpb5.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(255)),
((System.Byte)(128)), ((System.Byte)(255)));
this.cpb5.BorderColor = System.Drawing.Color.Black;
this.cpb5.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Solid;
this.cpb5.Location = new System.Drawing.Point(56, 184);
this.cpb5.Maximum = 100;
this.cpb5.Minimum = 0;
this.cpb5.Name = "cpb5";
this.cpb5.Size = new System.Drawing.Size(272, 32);
this.cpb5.Step = 10;
this.cpb5.TabIndex = 4;
this.cpb5.Value = 0;
//
// cpb6
//
this.cpb6.BarColor = System.Drawing.Color.FromArgb(((System.Byte)(255)),
((System.Byte)(128)), ((System.Byte)(0)));
this.cpb6.BorderColor = System.Drawing.Color.Black;
this.cpb6.FillStyle = ColorProgressBar.ColorProgressBar.FillStyles.Dashed;
this.cpb6.Location = new System.Drawing.Point(56, 232);
this.cpb6.Maximum = 100;
this.cpb6.Minimum = 0;
this.cpb6.Name = "cpb6";
this.cpb6.Size = new System.Drawing.Size(272, 32);
this.cpb6.Step = 10;
this.cpb6.TabIndex = 5;
this.cpb6.Value = 100;
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Actual manipulation by timer1
//
private void timer1_Tick(object sender, System.EventArgs e)
{
//
// All values are reset at the end to have endless loop
//
cpb1.PerformStep();
if (cpb1.Value == cpb1.Maximum)
cpb1.Value = cpb1.Minimum;
cpb2.PerformStepBack();
if (cpb2.Value == cpb2.Minimum)
cpb2.Value = cpb2.Maximum;
cpb3.Increment(1);
if (cpb3.Value == cpb3.Maximum)
cpb3.Value = cpb3.Minimum;
cpb4.Decrement(1);
if (cpb4.Value == cpb4.Minimum)
cpb4.Value = cpb4.Maximum;
cpb5.Increment(1);
if (cpb5.Value == cpb5.Maximum)
cpb5.Value = cpb5.Minimum;
cpb6.Decrement(1);
if (cpb6.Value == cpb6.Minimum)
cpb6.Value = cpb6.Maximum;
}
Missing Features
- Percentage indicator.
Contributions
- Many thanks to the CodeProject member mav.northwind on helping me rewrite the
onPaint()
method, see his post here.
Using the Control
Adding ColorProgressBar control to Windows Form Toolbox
- Right-click the Windows Form Toolbox and choose Customize Toolbox... from the shortcut menu. The Customize Toolbox dialog box opens.
- Choose the .NET Framework Components tab and click Browse. Browse to the ColorProgressBar\bin\Release or \debug folder and select ColorProgressBar.dll.
ColorProgressBar
appears in the list of components in the Customize Toolbox dialog box. - Check the box next to
ColorProgressBar
and Select OK. TheColorProgressBar
is now added to the tab of the Windows ToolBox.
My Other Control Project
Feedbacks
Please vote for this article.
And email me or leave your messages if you have:
- bug reports
- code improvements
- any comments or suggestions.