Click here to Skip to main content
15,881,248 members
Articles / Multimedia / GDI+
Article

Extended .NET Controls

Rate me:
Please Sign up or sign in to vote.
4.71/5 (33 votes)
4 Nov 20054 min read 192.5K   11.3K   179   41
A .NET library containing highly customizable controls.

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 namespace

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:

ExtendedDotNET.Controls.Panels.Panel Preview

This control has the following properties:

ExtendedDotNET.Controls.Panels.Panel Properties

The following property may need some explanation:

  • Style
    • 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.
  • ...

ExtendedDotNET.Controls.Progress.ProgressBar Preview

This control has the following properties:

ExtendedDotNET.Controls.Progress.ProgressBar Properties

The following properties may need some explanation:

  • CaptionMode
    • 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.
  • ChangeByMouse
    • Setting this to true will allow the user to change the value dragging the bar with the mouse.
  • Edge
    • 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.
  • Orientation & Invert
    • 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

    BarOffset, DashSpace, DashWidth

  • FloodPercentage

    FloodPercentage

  • FloodStyle
    • Standard: Use the flood for the bare-edge as in the image above.
    • Horizontal: Use the flood for the complete bar, for example, to create a progress bar showing green to red:

      progressbar from green to red

      To get this effect you must set the FloodPercentage to 1 [100%]. Setting the FloodPercentage to 0.5 [50%] will have the following effect:

      progressbar from green to red

  • ProgressBarStyle
    • 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

  • Initial release.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Belgium Belgium
I have been programming since my childhood and i love it as a hobby. I screw around in a couple of languages, Visual Basic, C++, MFC, C#, Java, Delphi, Pascal. Most of all I like MSVC# because i think the .NET framework is beautifully written.

Comments and Discussions

 
QuestionRun on Visual Studio 2015 ??? Pin
Petr Ha8-Apr-17 4:45
Petr Ha8-Apr-17 4:45 
BugDocking a child control in Caption Panel overlaps the caption bar. Pin
priyamtheone14-Aug-15 6:55
priyamtheone14-Aug-15 6:55 
QuestionVery nice Control Pin
zuhe huang26-Feb-14 17:21
zuhe huang26-Feb-14 17:21 
QuestionLicense ? Pin
RachedN21-Feb-11 2:59
RachedN21-Feb-11 2:59 
GeneralIcon transparency Pin
securigy15-Jun-10 0:34
securigy15-Jun-10 0:34 
GeneralRe: Icon transparency Pin
Johnny Hooyberghs15-Jun-10 0:53
Johnny Hooyberghs15-Jun-10 0:53 
General<value> - Custom Caption</value> Pin
RachedN2-Dec-09 21:24
RachedN2-Dec-09 21:24 
GeneralRe: - Custom Caption Pin
Johnny Hooyberghs3-Dec-09 0:07
Johnny Hooyberghs3-Dec-09 0:07 
GeneralRe: - Custom Caption Pin
RachedN23-Mar-10 20:25
RachedN23-Mar-10 20:25 
GeneralSuggestions Pin
Pandele Florin15-May-09 6:54
Pandele Florin15-May-09 6:54 
Generalusing extended.net control Progress bar PRoblem to use in Web application Pin
sunkarapraveen12-Jan-09 2:45
sunkarapraveen12-Jan-09 2:45 
Can we use the Progressbar in web Application with Mouse events..?

Actually we can show the control and use as image or bitmap but progressing by mouse click(scroll) is not working in asp.net web application.
how can we get please suggest on this..!!

awaiting for you reply..Johnny Smile | :)



Thank you..
GeneralProblems with value 1 Pin
PoweRoy17-Jun-08 2:45
PoweRoy17-Jun-08 2:45 
GeneralRe: Problems with value 1 Pin
PoweRoy17-Jun-08 2:51
PoweRoy17-Jun-08 2:51 
GeneralRounded panel Pin
vBirin4-Feb-08 21:07
vBirin4-Feb-08 21:07 
GeneralContinuos Progress Bar Pin
Sk8tz26-Sep-07 20:07
professionalSk8tz26-Sep-07 20:07 
GeneralSmall bug [modified] Pin
Narvius30-Aug-07 5:56
Narvius30-Aug-07 5:56 
GeneralRe: Small bug Pin
Malpass 2k416-Jan-08 2:46
Malpass 2k416-Jan-08 2:46 
QuestionRotate at any angle Pin
iw2nzm12-Jun-07 12:01
iw2nzm12-Jun-07 12:01 
Generalvery good Pin
amin keshani30-Oct-06 19:29
amin keshani30-Oct-06 19:29 
GeneralThank U. Very much. Pin
Thirapong10-Aug-06 1:03
Thirapong10-Aug-06 1:03 
GeneralUpdate for VS2005 Pin
K32117-Jun-06 10:24
K32117-Jun-06 10:24 
GeneralQuestions / points Pin
cechode28-Mar-06 11:40
cechode28-Mar-06 11:40 
QuestionC++? Pin
ziofabri22-Mar-06 5:49
ziofabri22-Mar-06 5:49 
JokeVS2005 needs recompilation (was C++?) Pin
ziofabri22-Mar-06 22:18
ziofabri22-Mar-06 22:18 
GeneralRe: VS2005 needs recompilation (was C++?) Pin
Johnny Hooyberghs23-Mar-06 8:44
Johnny Hooyberghs23-Mar-06 8:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.