Thoughts on Designing a Wizard

Z

Zim Babwe

VS 2005 Windows Application

I need to have users enter product information, then contact information,
then some other financial information. Currently I have a form that the
user enters info on, and at the top, I have a menu that has the three
options "Product", "Contact", "Other". When any option is chosen, I display
another form. The manager says, it is confusing to the user on how to
navigate. Which I think is ridiculous but hey, the manger knows all, sees
all, :)

What I would like to do is make a wizard, guiding the user to fill out the
information in order, but was wondering what the best way to go about this
is. Shall I have an MDI application with child windows, or should I have
one form with three panels and buttons that the user can click "Next",
"Previous"?

Any thoughts?

Thank you.
 
C

clintonG

The Wizard control is an internal implementation of the MultiView control.
You can use the MultiView control to build your own implementation or a
hybrid process that uses a Wizard and pages that use your use of the
MultiView controls.

One thing to be aware of is the fact that these controls are really useful
for light-weight implementations -- but -- if we start asking for too many
inputs on a page performance becomes seriously degraded and your page can
become unusable for those using dialup.

<%= Clinton Gallagher
NET csgallagher AT metromilwaukee.com
URL http://clintongallagher.metromilwaukee.com/
MAP http://wikimapia.org/#y=43038073&x=-88043838&z=17&l=0&m=h
 
C

clintonG

Ooops. Windows Forms aren't accessed using a dialup but the point should
have been made in general anyway...

<%= Clinton
 
Z

Zim Babwe

I looked at the Multi View in the HELP for VB and it seems like it is just
for the Web. When I mentioned about designing a Wizard, I was talking about
maybe having three forms with "Next" and "Previous" buttons, having the same
size forms so the user thinks they are still on the same form. Maybe an MDI
application with parent/child forms, but what are the pitfalls of either of
these? (If any)

Thanks
 
J

jayeldee

VS 2005 Windows Application

I need to have users enter product information, then contact information,
then some other financial information. Currently I have a form that the
user enters info on, and at the top, I have a menu that has the three
options "Product", "Contact", "Other". When any option is chosen, I display
another form. The manager says, it is confusing to the user on how to
navigate. Which I think is ridiculous but hey, the manger knows all, sees
all, :)

What I would like to do is make a wizard, guiding the user to fill out the
information in order, but was wondering what the best way to go about this
is. Shall I have an MDI application with child windows, or should I have
one form with three panels and buttons that the user can click "Next",
"Previous"?

Any thoughts?

Thank you.

This guy put together a nice wizard Control that I used for a quick
configuration program I had to get out.

http://www.codeproject.com/cs/miscctrl/DesignTimeWizard.asp

It's written for 1.1, but I think somewhere in the comments he
mentions a beta version for the 2.0 framework.
 
N

Nick Malik [Microsoft]

Zim Babwe said:
VS 2005 Windows Application

I need to have users enter product information, then contact information,
then some other financial information. Currently I have a form that the
user enters info on, and at the top, I have a menu that has the three
options "Product", "Contact", "Other". When any option is chosen, I
display another form. The manager says, it is confusing to the user on
how to navigate. Which I think is ridiculous but hey, the manger knows
all, sees all, :)

I agree with him. Does that make me ridiculous as well?

What I would like to do is make a wizard, guiding the user to fill out the
information in order, but was wondering what the best way to go about this
is. Shall I have an MDI application with child windows, or should I have
one form with three panels and buttons that the user can click "Next",
"Previous"?

I'd go with a single dialog that includes tabs. If your users are always
new (as in Kiosk style applications) then you may want a wizard with Next
and Prev buttons, but if you will have users that enter data more than once
using your U/I, then I'd strongly recommend you get rid of the requirement
that data be entered in the order you specify, and allow the user to enter
data in the order they choose. Tabs do that.

One window. One Form.

Switching forms may look clever but it is not. On a machine that is running
slowly (say they have Powerpoint, Visio, and Windows Media Player running as
well), then one form may go away and there may be a second or two until the
next one appears.



--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
 
K

Kevin Spencer

It has always stuck me that the System.Windows.Forms namespace didn't have
any type of Wizard Control. So, when I found a need for one, I decided to do
it right. That is, you see Wizards everywhere, in all sorts of software.
They all have certain elements in common, such as the buttons you mentioned,
the fact that each panel of the Wizard basically asks for some input from
the user, or may simply provide information, and the fact that the Wizard
should provide the data collected from the user when it is finished.

So, I wrote a few base classes. The base classes were essentially these:

Wizard - An inheritable Form class that is a container and manager for the
various other elements. It manages navigation through a Collection of
WizPanel instances, and exposes event handlers and data.
WizPanel - An inheritable Control that contains the interface for obtaining
user input for each step of the Wizard.
WizPanelCollection - A Collection of WizPanel instances.
WizPanelHeader - The header portion of a WizPanel.
WizButton - a navigation button on a Wizard
Several other helper classes, including a StepType enumeration, events and
event handlers, and styles.

Once these were created, I could create (and have created) multiple Wizards
of various types fairly easily.

Perhaps this will give you an idea for a starting point.

--
HTH,

Kevin Spencer
Microsoft MVP
Software Composer
http://unclechutney.blogspot.com

The shortest distance between 2 points is a curve.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top