Skip to main content
Email Password   helpLost your password?

Introduction

This article will help you give your application a common wizard interface. One of the main reasons wizards were invented was to make common tasks easier to work with.

Background

The idea for my wizard came soon after I realized I was reproducing code to do the same thing again and again! As working with database applications is my main job, the need for wizard based procedures kept arising more and more. I felt the need to create a common wizard interface to suit my needs.

Implementation

Just drop the WizardTemplate control on a form, and you are ready to go.

Usage

Points of interest

The wizard component is written in VB.NET and inherits from UserControl. Attached to the wizard is a 3DLine control.

Page Layouts

Wizards usually have two different page layouts, one for exterior pages (the main/welcome page), and one for interior pages (the individual steps within the first and last pages).

Exterior Pages

Exterior pages usually have a sidebar graphic with a boxed logo. The GNWizardFramework doesn't support this; instead, I have made the exterior page as a blank canvas so the developer can set the complete layout, and not be limited to having a sidebar they might not want.

Interior Pages

The interior pages are pretty much the same as the exterior pages except for a few minor alterations. Firstly, as exterior pages fill the whole wizard except for the button bar based at the bottom of the wizard, the interior pages have a header panel, and the working panel locations is compensated by a header.

PageStyle enum

How the code is brought together

The wizard consists of three classes and two controls:

Class/Control Description
WizardTemplateDesigner (class) Designer for the Wizard template
WizardPage (class) Wizard page item
WizardPageCollection (class) Holds all the WizardPage details, and handles all events passed by a WizardPage
WizardTemplate (control) Wizard control
ThreeDLine (control) Simple 3D line control

Handling buttons

All pages (interior and exterior) have their own button handlers. Buttons can be accessed by the page you want to change or set:

WelcomePage.HasNextButton = True
WelcomePage.HasPreviousButton = False
WelcomePage.HasCancelButton =True
WelcomePage.HasFinishButton = False

Main Features

Other Features

Conclusion

Not much here to learn from, but hopefully the library will be of some use. As this is my first article, please be lenient. I hope all of you at least enjoyed reading the article, and maybe you'll find the framework useful.

Licence (LGPL)

The GNWizardFramework library is copyright 2005-2006 to Gary Noble, but its source code and the binaries are free for commercial and non commercial use.

Only vote for this article if you like the library.

History

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralSet Focus of Next, Cancel and Finish Pin
jacodutoit
21:46 5 Mar '08  
GeneralRe: Set Focus of Next, Cancel and Finish Pin
jacodutoit
23:34 6 Mar '08  
GeneralOnMovePrevious, OnBeforeMoveNext Pin
emblabac
5:58 15 Jan '08  
QuestionTrap button clicks? Pin
AIroff
0:18 23 Nov '07  
QuestionUsage Pin
stixoffire
19:43 13 Nov '07  
AnswerRe: Usage Pin
Gary Noble
23:17 13 Nov '07  
QuestionSpanish text for buttons (next, back, ...) Pin
amarino
14:17 6 Oct '07  
QuestionEvent OnMovePrevious Pin
patmorier
0:49 2 Oct '07  
GeneralControls disappear when added to a Wizard Page Pin
Lonny Angell
5:12 6 Aug '07  
GeneralRe: Controls disappear when added to a Wizard Page Pin
MrPalermo
14:53 1 Dec '07  
QuestionBest method to skip pages? Pin
Phil Jeffrey
18:32 1 Aug '07  
GeneralProblems when using DPI 120 Pin
Geert van Horrik
3:42 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Gary Noble
5:45 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Geert van Horrik
5:52 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Gary Noble
6:04 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Geert van Horrik
6:27 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Gary Noble
6:48 21 Jun '07  
GeneralRe: Problems when using DPI 120 Pin
Geert van Horrik
6:50 21 Jun '07  
GeneralDesigner Bug Pin
dwpmartin
7:51 19 Jan '07  
QuestionIs this a bug?? Pin
wreinhold
10:42 20 Dec '06  
AnswerRe: Is this a bug?? Pin
Gary Noble
23:07 20 Dec '06  
GeneralRe: Is this a bug?? Pin
wreinhold
2:30 21 Dec '06  
QuestionAdd to toolbar problem [modified] Pin
wreinhold
5:07 15 Dec '06  
QuestionWill this work with VS2005 Pin
chilling
1:03 25 Nov '06  
AnswerRe: Will this work with VS2005 Pin
Gary Noble
0:04 26 Nov '06  


Last Updated 21 Dec 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009