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.

Once dragged, a wizard is created for the form.

Step 3: Use the designer to customize the designer.

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.

Comments and Discussions

HiFirst of all thanks for the great work you've done.I have a problem.1- by changing right-to-left of the form in the runtime, the wizard closes the form!!!I managed fixing it by defining a bool value and set it at right-to-left_changed and in the form-closing i check the bool variable and if needed set cancel=true;could fix the problem?

sir
the article you have posted, is very good and useful.
but
i want to add extra buttons in next-previous strip.
how can I do this?
and when I disables cancel button at one step it disables at all steps.
how can I disable specific button (cancel,back,next)for specific step only?
and also
how can i change the position of next,cancel,back button?

To enable/disable the specific button (cancle, back, next) for specific step only, I think you can do the enable/disable operation in the event 'CurrentStepIndexChanged' of wizardControl.
I think you can't add extra buttons in the strip, but you can make the button visible property to be false and and add your button in a new panel below.
And you can also modify the lib code to make the buttons' posistions and shapes as your wish, you can read the other persons reply before, I studied this just as other persons reply before.

This is interesting. But its all VERY unnecessary. If you want to create a wizard. Just inherit a new control from the tabcontrol and either use createparams to keep the tabs from being drawn or modify the controls region to match its first tab page. Then style the wizard from as you like. Use tab pages for each page of the wizard. you can even have the tabs show up in the designer to make it easier to set up. Add some buttons at the bottom to control the current displayed tabpage and boom. Simple 5 minute wizard, no fuss, no trouble. no dll, and no license.

Did anybody eventually figure out how to control Next/Back/Cancel/Finish butons.
The demo just calls Close(), but in reality how to you get the next page when you click on Next? How it supposed to be wired into WizardControl? I tried to call myWizCtl.OnNextButtonClick from the form handler, but it wont even compile since the latter is a protected member...any other way?

Has anyone applied all the fixes & enhancments mentioned and have a working .dll? If so, it'd be super if they'd share the source with the rest of the CodeProject community I'm fairly new to C#, and this code is a wee bit over my head.

Hi!
I'm new to wizards and also almost new to MDI application...
I'm trying to build an MDI application with wizard to use with database for configuring some special properties of tables.
Before starting I want to thank you for your this great control and then I'd like to know if this is the last version you release or if I can find somewhere a newer one.
If I'm not wrong the control version downloaded here is 1.0.1.0.
Thanks!

Hello,
I have three intermediate steps in my wizard control. I want to control the navigation from step2 to step3 by a custom criteria. That means if user doesn't satisfy step requirements, an error message is shown and he remains in the same step.
Thanks

We've used your simple wizard control to create an installer for our product. We like it very much! Unfortunately, our intellectual property attorneys can't accept the Code Project Open License. I'm terribly sorry that we didn't consult with the IP attorneys before we implemented, but we didn't.

I'm not an intellectual property attorney and I'm not qualified to dispute their dislike of the CPOL license.

I'm trying to find a way to let us redistribute WizardBase.dll under a license which is acceptable to our IP attorney. Would you consider changing to a BSD license for this code, either at the project level, or as a special "one off" so I could use your code in a commercial product?

Geeze, the CPOL is about as un-restrictive as you can get. What specifically does your IP attorney have a problem with? You may also want to bring this up with Chris in the Suggestions/Site Bugs forum.

"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997-----"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

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