Screenshot from visual studio designer
Screenshot from runtime form.
Screenshot from runtime form.
Recently I decided to use Wizard Style user interface for my .Net project. Before implementing my own control I have searched the web. I found very useful controls. But most of them are very complex for that type user interface operation. Although I found most of them successful, decided to use none of them. Because most of this controls limits the way I design my own application. So I decided to write my own control. The control I create should give freedom for following clauses to developer
- Developers may be able to design each wizard page visually.
- Developers may be able to design, position, draw etc. next, previous and finish buttons.
- Developers may be able to validate inputted data after each step.
- Must be very easy to use.
In this article I will try to explain my aproach to Wizard Style user interface control which handles all these clauses. This control is built on Windows.Forms.Panel control.
A few years ago I have designed a software project. After having it worked for a few weeks, I have encoutered that collected data is not coming (to our servers) correct. In order to see what is wrong, I have worked with one of my end users. I have collected invaluable data after working with him. Also this action helped me to find the main reason of this mistake. The reason of mistake was fault of user interface. The data collected inside the form was very much, and this causes end user to make mistakes. If the user is not experienced computer user, the probability of making mistake increases rapidly. A little distraction might cause to input missing information. So that I have started to research a different way to receive input from users.
After research I have decided to use Wizard Style user interface. I broke information into pieces. In each step the application received input and validated it. That solved our problem. For this project I did use Visual Basic 6.0. It was not very easy to implement that type of user interface. By the way since then I am trying to use Wizard Style user interface in order to receive input if applicable.
Using the code
We have two main functions on this control. A function for stepping next user interface and for stepping previous user interface. Also we have two main events. An event that user stepped next user interface, and an event for user stepped previous user interface.
We will use functions to let control navigate through user interfaces. We will use events to validate data that user inputted in each step. That's all simple.
I beleive the codes are very straight forward ;).
Please note that code is not thread safe
Points of Interest
Yasin has more than 10 years of professional experience. He has several published articles includes graphics programming, robotics and application development in academic resources and national press. He is now working as a software developer for semi-governmental organization in Turkey.