Introduction
We all like the XP-themed controls, don't we? But do you also think the standard controls provided with the C# toolbox are not enough? Well I am trying to create a whole set containing existing controls, but also new controls that will (hopefully) blow your mind. I can already hear people screaming at me that the internet is stuffed with such controls created by various people. Now let me tell you that I am trying to be more innovative than the others. I have downloaded many controls for me to use, but there is always some feature missing that I need. So now I am going to create these controls with as many thinkable features as possible.
Windows XP like theming
I also dislike the dependence of UxTheme.dll to theme the controls, so these controls do not need Windows XP as the operating system. I paint the controls completely from scratch so the only thing you need to use these controls is the .NET Framework 1.1 and a version of Windows you prefer.
The ExtendedDotNET.Controls namespace
I created a class library which is called ExtendedDotNET.Controls. Hereunder, I will store all my controls in it so they are all packed in one nice library.
An overview of the ExtendedDotNET.Controls
namespace so far created:
The ExtendedDotNET.Controls.Panels namespace
This namespace contains all panel-like controls
ExtendedDotNET.Controls.Panels.Panel
This is a panel-like control. The default System.Windows.Forms.Panel
control hasn't got much features to present itself. This panel however has a nice XP-like view as you can see in the following image:
This control has the following properties:
The following property may need some explanation:
BorderStyle.None
: doesn't draw a border.
BorderStyle.Single
: draws a border with the given color and width.
BorderStyle.Raised3D
: draws a raised border using the given color and width (not working yet).
BorderStyle.Sunken3D
: draws a sunken border using the given color and width (not working yet).
BorderStyle.Shadow
: draws the panel with a single border with given color, width, and adds a nice shadow.
Because this panel control is derived from the System.Windows.Forms.Panel
control, acting like a container, you are able to drop any control you like in it.
The ExtendedDotNET.Controls.Progress namespace
This namespace contains all progress bar controls
ExtendedDotNET.Controls.Progress.ProgressBar
This is a progress bar control like the System.Windows.Forms.ProgressBar
but with much more features:
- Place the bar horizontal or vertical.
- Invert the progress direction in both horizontal and vertical mode.
- Change the border style.
- Change every single color you can find in this control.
- Add a caption.
- Change the dash width and spacing.
- Change the value by dragging your mouse.
- ...
This control has the following properties:
The following properties may need some explanation:
None
: The progress bar doesn't have a caption.
Percent
: The progress bar shows the percentage [0%..100%] of its progress.
Value
: The progress bar shows the value [minimum .. maximum] of its progress.
Custom
: The progress bar shows the string given by the Caption
property. This string can contain variable fields (<PERCENTAGE> and <VALUE>) which will be converted to there corresponding values.
- Setting this to
true
will allow the user to change the value dragging the bar with the mouse.
None
: The progress bar doesn't have an edge.
Rectangle
: The progress bar has a rectangle edge.
Rounded
: The progress bar has a rounded edge like the XP-style progress bar.
Horizontal
& false
: The progress bar runs from left to right.
Horizontal
& true
: The progress bar runs from right to left.
Vertical
& false
: The progress bar runs from top to bottom.
Vertical
& true
: The progress bar runs from bottom to top.
BarOffset
, DashSpace
, DashWidth
FloodPercentage
FloodStyle
Dashed
: creates a dashed bar like the XP-style progress bar.
Solid
: creates a solid bar like the old-style progress bar.
- The category "Properties":
- The
Maximum
property lets you change the maximum value of the range of the control (type int
).
- The
Minimum
property lets you change the minimum value of the range of the control (type int
).
- The
Step
property lets you change the amount by which a call to the PerformStep
method increases the current position of the progress bar (type int
).
- The
Value
property lets you change the current position of the progress bar (type int
).
How To Use
Right click on the Toolbox and choose Add/Remove Items..., there you browse for the ExtendedDotNET.Controls.dll and press OK. All the controls will be added in the ToolBox under "My User Controls".
Notes
I will try to keep creating these controls and I will keep this document up-to-date. You can always mail me for suggestions because I obviously must have forgot some important features.
Revision History
Version 0.1 - 2005 October 26