Menüsteuerung ist bei Windows Standard. Die Anlage einer Menüleiste wird von VB durch einen Assistenten unterstützt und ist in kurzer Zeit zu erledigen. Das praktische Vorgehen wird schrittweise erläutert.

Man beginnt die Arbeit mit der ersten Menü-Überschrift, die das fertige Formular später zeigen soll; nach Windows-Standard, (der eine Empfehlung bedeutet, keinen Zwang!) wäre das "Datei". Dies (oder ein anderer selbst gewählter Eintrag) ist bei "Caption" einzutragen. In bewährter Weise läßt sich im Caption-Eintrag ein "&" vorsehen, das den Folgebuchstaben unterstreicht und der Tastenbedienung verfügbar macht. Unter "Name" muß ebenfalls etwas eingetragen werden. Mit dem Namen wird der Menüpunkt intern bezeichnet und ausgewertet. Der Programmierstandard sieht vor, daß die Namen von Menüpunkten mit der Kennung "mnu" beginnen, man könnte also hier "mnuDatei" vorsehen. Im unteren Sichtfenster steht nun die gewählte Bezeichnung in der ersten Spalte. Im Prinzip ist der Menüeintrag damit fertig.
Menüeinträge für die einzelnen Rollfenster werden mit Hilfe der Pfeiltasten in die zweite Spalte geschickt. Eine dritte Spalte erzeugt Untermenüs. Im Sichtfenster sind Veränderungen sowohl mit der Maus ("Drag and Drop") als auch mittels der Pfeiltasten und der drei Command-Buttons jederzeit möglich.
Weitere Menüeinträge lassen sich in gleicher Weise erstellen. Wenn sie in der ersten Spalte stehen, werden sie später in der Menükopfleiste als Überschriften der eigentlichen Menüs angezeigt.
Einige weitere Möglichkeiten müssen noch erwähnt werden:
- Vergibt man als Caption ein "-", also ein Minus, muß man auch einen Namen angeben, es erscheint aber dann im Menü nur ein Strich zu Gliederungszwecken
- Index -Eintrag, ist dann erforderlich, wenn ein Menüname zweimal vergeben wurde. Der Index wird dann in der Form MeinName(0), MeinName (1) etc. gebraucht.
- Shortcuts (Tastenkombinationen zum Aufruf des Menüpunktes ) lassen sich angeben. Vorsicht, daß man nicht mit Windows-Shortcuts kollidiert, damit wird die Rechnerbedienung unübersichtlich!
- HelpContextID dient der Erstellung einer contextsensitiven Hilfe, siehe Hilfe-Hilfstext
- Checked setzt ein Häkchen am Menüeintrag, dieses muß programmtechnisch erfragt und nach Bedarf im Programm gesetzt oder gelöscht werden. Damit der Haken sich standardgemäß (wie ein Wechselschalter) benimmt, muß in der sowieso erforderlichen Sub mnuName_Click() z.B die Zeile "mnuName.Checked = Not mnuName.Checked" stehen.
- Enabled ist automatisch zunächst gesetzt ("True"). Wenn es auf "False" steht, ist der Menüeintrag deaktiviert und wird hellgrau angezeigt. Professionell setzt man diese Option, wenn die Menüoption nicht sinnvoll ansprechbar ist. Das ist z.B. in einem Texteditor mit der "Drucken"-Option der Fall, wenn es noch keinen Text gibt. Verwaltet wird diese Eigenschaft im Programmablauf, durch das Setzen dieser Eigenschaft: "mnuName.Enabled = True".
- Visible, im Entwurf zunächst immer auf "True" gesetzt, ermöglicht es, Menüeintäge unsichtbar zu machen. Wenn es sehr viele Menüeinträge gibt, empfiehlt es sich, die (gerade) nicht zugänglichen verschwinden zu lassen, damit die Menüs übersichtlich bleiben.
Ergänzung für Fortgeschrittene: Bei der beschriebenen Art der Programmierung ist für die Auswertung jedes einzelnen Menüpunktes eine Sub erforderlich. Das macht den Codebereich unübersichtlich. Durch Verwendung der Indizierungsmöglichkeit läßt sich dieses Problem lösen. Man vergibt im Menüentwurf nur einen Namen, der durch Indizierung für alle Einträge verwendbar wird; z.b. "mnuPunkt". Der Doppelklick auf irgendeinen Menüpunkt öffnet nun einen anderen Sub-Rahmen, dessen einzutragender Code folgt:
| Private Sub mnuPunkt (Index as Integer) Select Case Index Case 2 Case 1 DateiÖffnen DateiSpeichern ... Case xy ... End Select End Sub |
Damit ist die gesamte Menüauswertung abgeschlossen. Nachteilig bei diesem Verfahren ist allerdings, daß die Menünamen den gewünschten Vorgang nicht mehr verraten können, was spätere Änderungen erschwert.