Click here to Skip to main content
Click here to Skip to main content

A Simple Wizard Control for .Net 2.0 with Full Designer Support

, 4 Feb 2008
Rate this:
Please Sign up or sign in to vote.
This is a simple yet powerful wizard framework for .Net 2.0. Just drag and drop and your component is ready for use.
Prize winner in Competition "Best C# article of Apr 2007"
WizardDemo1.png

Introduction

This control allows the creation of a wizard framework in seconds. All you need to do is drag and drop and your wizard is ready for use. This wizard control has full designer support and is highly customizable according to the needs of the user.

Background

I was trying to find a control similar to the wizard in ASP.NET. I learned that it is not available in the .NET Framework, so I decided to make a framework that would allow me to make a wizard in a few simple steps. The wizard control is easy to use - a beginner user should be able to use this control without any problems. The wizard control provides full designer support to users by allowing them to view current program actions.

Using the Library

Step 1: Add a reference to Wizarddemo.dll. This step will add the control automatically to the toolbox of Visual Studio.

Step 2: Drag and drop WizardControl to the form where you want to implement the wizard.

WizardDemo3.png

Once dragged, a wizard is created for the form.

Step 3: Use the designer to customize the designer.

WizardDemo4.png
WizardDemo6.png
WizardDemo7.png
WizardDemo8.png
WizardDemo9.png
WizardDemo10.png
WizardDemo2.png
WizardDemo5.png

Points of Interest

WizardControl

Properties

  • BackButtonEnabled - Defines whether or not the Back button is enabled or disabled.
  • BackButtonText - This can be used to get or set the text of the Back button.
  • BackButtonVisible - Indicates whether the Back button is visible or not.
  • NextButtonEnabled - Defines if the Next button is enabled or disabled.
  • NextButtonText - This can be used to get or set text of the Next button.
  • NextButtonVisible - Indicates whether the Next button is visible or not.
  • CancelButtonEnabled - Defines whether the Cancel button is enabled or disabled.
  • CancelButtonText - This can be used to get or set the text of the Cancel button.
  • CancelButtonVisible - Indicates whether the Cancel button is visible or not.
  • HelpButtonEnabled - Defines whether the the Help button is enabled or disabled.
  • HelpButtonText - This can be used to get or set the text of the Help button.
  • HelpButtonVisible - Indicates whether the Help button is visible or not.
  • FinishButtonText - Text of Finish button.
  • EulaButtonEnabled - Defines if the Eula label is enabled or disabled.
  • EulaButtonText - This can be used to get or set the text of Eula label.
  • EulaButtonVisible - Indicates whether the Eula label is visible or not.

Events

  • BackButtonClick - The Back button is clicked.
  • CancelButtonClick - The Cancel button is clicked.
  • FinishButtonClick - The Finish button is clicked.
  • HelpButtonClick - The Help button is clicked.
  • NextButtonClick - The Next button is clicked.
  • EulaButtonClick - The Eula button is clicked.
  • CurrentStepIndexChanged - Occurs after a current step index is changed.

StartStep

Properties

  • Title - Title text of the step.
  • TitleAppearence - Title appearance of the step.
  • SubTitle - The subtitle text of the step.
  • SubtitleAppearence - The subtitle appearance of step.
  • LeftPair - The back color appearance of the left panel.
  • BindingImage - Image for the step.
  • Icon - Icon displayed in the start step.
  • LeftPanelBackColor - If image is null, left panel back color.

Events

  • BindingImageChanged - Fires when BindingImageChanged of the step is changed.

LicenseStep

Properties

  • Title - Title text of the step.
  • TitleAppearence - Title appearance of the step.
  • SubTitle - Subtitle text of the step.
  • SubtitleAppearence - Subtitle appearance of step.
  • Warning - Warning text.
  • WarningFont - The warning text appearance of the step.
  • BindingImage - Image for the step.
  • HeaderPair - Appearance of header.
  • Accepted - Status of license agreement.
  • AcceptText - Accept text.
  • DeclineText - Accept text.
  • LicenseFile - License file to display.

Events

  • BindingImageChanged - Fires when BindingImageChanged of the step is changed.
  • AgreementChanged - Fires when license agreement of the step is changed.

IntermediateStep

Properties

  • Title - Title text of the step.
  • TitleAppearence - The title text appearance of the step.
  • SubTitle - Subtitle text of the step.
  • SubtitleAppearence - The subtitle appearance of the step.
  • HeaderPair - Appearance of the header.
  • BindingImage - Image for the step.

Events

  • BindingImageChanged - Fires when BindingImageChanged of the step is changed.

FinishStep

Properties

  • BindingImage - Background of the finish step.
  • Pair - Appearance of the body.

Events

  • BindingImageChanged - Fires when BindingImageChanged of the step is changed.

Known Issues

  • During the removal of the wizard control, the step code is not removed from the designer.

History

This is the first release of the wizard. Suggestions are welcome for improving this framework.

First revision: 02/2008

  • Generic designer integrated.
  • Advanced generic collections used.
  • Advanced generic type converters.
  • Very small in size.
  • Serialization support.
  • Reset support.
  • Shadow text support.
  • During the removal of the wizard control, the step code is not removed from the designer: fixed.
  • Problem with binding image fixed; it was not setting to null.
  • New events added.
  • License agreement step added.
  • Finish page updated.
  • Other small issues fixed.

License

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

About the Author

Manish Ranjan Kumar
Software Developer (Senior)
India India
No Biography provided

Comments and Discussions

 
QuestionAdding extra button in next-prev strip PinmemberAmarjeet Banwait24-Jun-13 3:55 
AnswerRe: Adding extra button in next-prev strip Pinmemberxuanguang27-Jul-13 18:11 
GeneralRe: Adding extra button in next-prev strip PinmemberAmarjeet Banwait14-Mar-14 1:15 
QuestionFinish Button Behavior Pinmemberlyricette31-Dec-12 5:55 
AnswerRe: Finish Button Behavior PinmemberMember 98042814-Feb-13 6:07 
GeneralGood example PinmemberWenqingShieh25-Apr-12 17:37 
Questioninteresting PinmemberCIDev7-Nov-11 7:03 
QuestionNice Job PinmemberMike Hankey21-Aug-11 3:32 
QuestionWizardControl not appearing in toolbox PinmemberMember 81389305-Aug-11 4:32 
AnswerRe: WizardControl not appearing in toolbox PinmemberMember 43130936-Dec-11 13:17 
GeneralGetting Started PinmemberJimboStink11-Feb-11 11:49 
GeneralThis is interesting, but odd and unneccesary. PinmemberDiamonddrake18-Jul-10 5:23 
GeneralRe: This is interesting, but odd and unneccesary. PinmemberMember 871442129-Nov-13 8:15 
GeneralControlling the buttons Pinmembersecurigy23-Jun-10 1:19 
GeneralMy vote of 2 Pinmembersecurigy23-Jun-10 0:59 
GeneralBug-free version Pinmemberspencepk3-Mar-10 4:46 
QuestionNew version of WizardControl [modified] PinmemberFBCode19-Oct-09 22:44 
QuestionHow to control the navigation with Next & Back buttons by a criteria PinmemberEng.Zargar2-Aug-09 21:23 
AnswerRe: How to control the navigation with Next & Back buttons by a criteria Pinmemberxuanguang27-Jul-13 18:02 
GeneralOutsatnding Pinmembergujavierdra14-Jul-09 11:54 
GeneralLicenseFile Pinmembersqldevpro1-Mar-09 9:07 
QuestionWilling to change license to a less restrictive license? PinmemberMarkEWaite10-Dec-08 11:55 
AnswerRe: Willing to change license to a less restrictive license? PinmvpJohn Simmons / outlaw programmer12-Dec-08 4:43 
GeneralRe: Willing to change license to a less restrictive license? PinmemberMarkEWaite12-Dec-08 13:11 
I've learned not to argue with attorneys, especially when I'm trying to move other things very quickly. I'm not an attorney, and I am new to the company because the previous company was purchased by the new company.
 
The attorney specifically objected to the phrases which I marked in bold text:
 


 
You may distribute the Executable Files and Source Code only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute the Executable Files or Source Code with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License
 


 
Apparently those restrictions apply to the executable as well as the source, where they are more typically applied only to the source code in other open source licenses and that was the "sticking point" for the attorney. I don't claim to understand the legal conditions and terms of the various licenses. The CodeProject license comparison page makes it seem like the CPOL is a better license, yet the attorney preferred the BSD license above it.
 
There is an interesting posting from 2006 by Jon Galloway which concludes that the CPOL license is more restrictive than most open source licenses. It may be that is an earlier version than CPOL 1.02. I'm not sure.
 
I am sure that I need the attorneys on my side if I want to release software, and I want to release software...
 
I'll consider bringing the discussion to the Site Bugs forum.
 
Thanks
Mark Waite
GeneralBindingImage Change PinmvpJohn Simmons / outlaw programmer9-Dec-08 3:31 

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

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

| Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 4 Feb 2008
Article Copyright 2007 by Manish Ranjan Kumar
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid