Console BarMenu - 3
|
(DOS era text-mode style Colorful Bar-Menu in c#)
|
.
|
A few decades ago
during time of DOS 3 days making bar-menu in text or graphic mode was an advance cum fancy topic.
What I remember now I
then wrote a .prg program for making 'bar-menu' in 'dBase III Plus' on PC of institute and
also impressed my friends, lab assistants and teachers. That .prg was first program I wrote for making
bar-menu. Now it's print-out is still available in my
archive of old print-outs or not I do not know. I am not trying to know either. So in memory of that 'Bar-Menu'
program,
I made for the first time in 'dBase III Plus' then, I made a Console project in C Sharp now.
|
Salient features of above mentioned c# project are as follows:
|
(A) Display bar-menu.
|
(B)
Provide menu-item selection mechanism through navigation keys like Up-arrow, Down-arrow, Home, End
and Enter keys.
|
(C)
Process menu-item selection and perform action accordingly.
|
(D)
Return back to menu at end of action processed.
|
(E) Provide mechanism for exiting from 'bar-menu'
and application.
|
.
|
Then I tried and
made the above required project. Code for achieving
above task is simple and is described as follows.
|
(1) First
menu processing method is called. There must be one such method per menu.
|
(2) Then from menu
processing method menu-driver
method is called with information like menu-item-list etc.
|
(3) Then in menu-driver things happen in following sequence:
|
(3a)
First menu is displayed.
|
(3b) Then
user-input is taken.
|
(3c) Then user-input is processed based on input key as follows:
|
(3c1) Navigation key: Selected menuitem index is updated.
|
(3c2) Enter key: Current menuitem index is selected for returning.
|
(3c3)
Escape key: Menu exit code is selected for returning.
|
(3c4)
If user input is not Escape-Key or Enter-Key go back to step 3a.
|
(3c5)
Menu-driver exits when user-input is Escape-Key or Enter-Key.
|
(4) Back in menu
processing method returned value is processed as follows:
|
(4a) Respective methods are called
according to returned value. On return control goes back to step 2.
|
(4b)
Else menu exits when selection code is Escape-Key.
|
.
|
Keys used by menu
are displayed in menu footer and are described in the following:
|
Navigation:
|
Down-arrow key for next menuitem.
|
Up-arrow key for previous menuitem.
|
Home key for First menuitem.
|
End key for last menuitem.
|
Selection:
|
Ente key for selecting current menuitem.
|
Exit:
|
Escape key for exiting menu.
|
.
|
Following is the C#
code of the project I described above. It is not so simple or easy to understand.
But it is full of helpful comments throughout it.
|
.
|
|
.
|
Visual C# 2010 Code |
|
.
|
|
.
|
Application Output |
(When selection bar is on first menu-item) |
|
.
|
(When selection bar is on last menu-item) |
|
.
|
(When selection bar is on some other menu-item) |
|
.
|
(When 'Grains and cereals' menu-item is selected and respective
method is run) |
|
.
|
(When 'Vegetables' menu-item is selected and respective method is
run) |
|
.
|
(When 'Bakery & Confectionery Products' menu-item is selected
and respective method is run) |
|
.
|
Method which displays message based on menu selection, randomly selects
background for console screen from a few dark ConsoleColors making display a
little colorful.
|
If there are any mistakes then I will surely remove them whenever found.
|
|
Enjoy
Complete
Source code of application written and compiled in visual studio 2010 Ultimate by me.
Download it. Extract it. Read 'ReadMeFirst.txt' file and do as is explained in
it.
|
|