
Menüs (Standardmenüs) sind in Windows-Anwendungen weit verbreitet. Sie haben eine Reihe von Vorteilen:
Die Menünamen sind auf der Menüleiste als Text sichtbar, somit kann der Benutzer die Hauptfunktionen des Programms jederzeit sehen.
Menütitel oder Menüeinträge (wie beispielsweise Datei öffnen im Datei-Menü) sollten so gewählt werden, daß sie unzweideutig sind. Menüeinträge können mit Symbolen ergänzt werden. Allerdings kann es schwierig sein, ein zufriedenstellendes Symbol für eine abstrakte Funktion zu entwerfen (auch deshalb ist die Wahl einer prägnanten Bezeichnung für den betreffenden Menüeintrag sehr wichtig).
ist das standardmäßige Symbol für das Öffnen einer Datei.
Die Menüleiste benötigt sehr wenig Platz auf dem Bildschirm.
Die Menüeinträge sind in der Regel durch eine Tastenkombination erreichbar (bei gedrückte Alt-Taste den unterstrichenen Buchstaben des Menüs und des gewünschten Menüeintrages tippen, beispielsweise Alt+df’ für den Menüeintrag des Öffnens eines Projektes im Datei-Menü).
Funktionen sind zusammengruppiert und bilden einen Satz zusammengehöriger oder verwandter Menüeinträge, dies hilft dem Benutzer, sich bei der Suche nach einer Option zurechtzufinden.
Es wurde versucht, standardisierte Namen und Anordnungen der Menüeinträge zu verwenden (speziell in Microsoft-Anwendungen), damit Anwendungen leichter erlernt und benutzt werden können.
Wenn eine neue Anwendung in VB entworfen wird, sollten existierende Menü-Konventionen benutzt werden, es sei denn, es gibt einen sehr guten Grund, von diesen abzuweichen.
Menüs werden mit dem Menü-Editor erstellt (in der Menüleiste von VB im Extras-Menü zu finden). Dieser Editor kann auch durch einen Click auf das
-Symbol in der Symbolleiste aufgerufen werden.

Die obere Hälfte des Menü-Editors enthält die Eigenschaften des jeweiligen Menüeintrages. Die untere Hälfte enthält das Menü-Listenfeld, in dem die Menüstrukturierung (Hauptmenü/Untermenü/weiteres Untermenü/etc.) für die aktuelle Form erstellt wird. Der zuvor abgebildete Menü-Editor erzeugt folgendes Menü:

Die Schaltflächen im Menü-Editor haben folgende Funktionen:
| Schaltfläche | Beschreibung |
|---|---|
| Nächstes | Verschiebt die Markierung in die nächste Zeile. |
| Einfügen | Fügt im Listenfeld eine Zeile über der momentan ausgewählten Zeile ein. |
| Löschen | Löscht die momentan ausgewählte Zeile. |
| OK | Schließt den Menü-Editor und übernimmt alle Änderungen für die zuletzt ausgewählte Form. Das Menü ist zur Entwurfszeit verfügbar, aber das Auswählen eines Menüs zur Entwurfszeit öffnet das Codefenster für das Click-Ereignis dieses Menüs, statt Ereigniscode auszuführen. |
| Abbrechen | Schließt den Menü-Editor und verwirft alle Änderungen. |
Wenn ein Entrag im Caption-Textfeld eingegeben wird, erscheint er gleichzeitig auch im Menü-Listenfeld. Wird ein Eintrag aus dem Menü-Listenfeld ausgewählt, können im oberen Teil des Menü-Editors dessen Eigeschaften bearbeitet werden (in ähnlicher Weise wie das Bearbeiten von Steuerelemente-Eigenschaften im Eigenschaften-Fenster).
Ein Eintrag, der am linken Rand des Listenfeldes steht, ist der Hauptmenü-Titel.
Menüeinträge werden eingeschoben, indem man auf die rechte Pfeiltaste clickt. Ein Click auf den linken Pfeil schiebt den Eintrag wieder eine Ebene nach oben.
Die nach oben und unten zeigende Pfeile werden für die Bewegung durch die Einträge in dem Menü-Listenfeld verwendet.
Wenn Untermenüs benötigt werden, werde diese durch zweifachen Einschub (mit dem rechten Pfeil) eingerichtet. Zur Laufzeit wird ein Untermenü durch einen kleinen Pfeil am rechten Rand des Menüeintrags gekennzeichnet, unter dem es untergeordnet ist. Sie können bis zu vier Ebenen von Untermenüs erstellen.
Das Ampersand-Zeichen ‘&’ wird verwendet, um einen Buchstaben zu unterstreichen (jener, der direkt auf das Zeichen folgt), für den Tastatur-Zugriff des betrefffenden Menüeintrags.
Wenn in der Caption-Eigenschaft ein Minuszeichen ‘-’ eingetragen wird, führt dies zu einer Trennlinie. Benutzen Sie dieses Hilfsmittel, um Menüeinträge zu gruppieren.
Der Name eines Menüeintrags wird jener Name sein, der im Programmcode verwendet wird, um auf diesen Menüeintrag zurückzugreifen.
Die Shortcut-Liste kann jedem Menüeintrag eine Tastaturkombination zuweisen (Strgl+Buchstaben), oder eine der Funktionstasten. Hauptmenünamen können keine Shortcuts zugewiesen werden.
Wenn die Eigenschaft Checked gesetzt ist, setzt das ein Häkchen vor den betreffenden Menüeintrag, um zu kennzeichnen, welche Option innerhalb einer Reihe Optinen gerade gewählt ist.

Um dies (das Setzen eines Häkchens) zur Laufzeit zu tun (Fallunterscheidungen und Indexzahlen können nur übernommen werden, wenn die Anordnung der Menü-Einträge so wie im gezeigten Beispiel aussieht):
Sub mnuLaufweite_Click (Index As Integer)
Dim MenüWahl As Integer
For MenüWahl = 1 To 3
Rem Häkchen aus jedem Eintrag des Untermenüs entfernen.
mnuLaufweite(MenüWahl).Checked = False
Next MenüWahl
Rem Häkchen setzen beim neu gewählten Menüeintrag.
mnuLaufweite(Index).Checked = True
Select Case Index
Case 1 ' Eng
Rem Code einfügen für 'Eng'.
Case 2 ' Normal
Rem Code einfügen für 'Normal'.
Case 3 ' Weit
End Select
End Sub
Wenn die Eigenschaft Enabled auf Falsch gesetzt wird, dann wird der Eintrag zur Laufzeit grau dargestellt, und reagiert nicht auf die Click-Methode (auf keine Methode).
Zur Laufzeit würde mnuAbsatz.Enabled = False den Menüeintrag Absatz... am unteren Ende des Bearbeiten-Menüs (im vorherigen Beispiel) grau darstellen.
Die Eigenschaft Visible wird verwendet, um festzulegen, ob der Menüeintrag zur Laufzeit sichtabr oder unsichtbar sein soll. Wenn ein Menüeintrag unsichtbar ist, rücken die Einträge darunter auf, um den Platz zu füllen. Wen ein Menütitel unsichtbar ist, erscheint es nicht (samt sämtlichen Untermenüs), und das rechts danebenliegende Menü rückt eine Stelle nach links.
Zur Laufzeit würde mnuSpeichernUnter.Visible = False den Menüeintrag Speichern unter... aus dem Datei-Menü entfernen.
Ein Kontextmenü ist ein Menü, das auf der Oberfläche einer Form angezeigt wird, und nicht mit der Menüleiste verbunden ist.
Beispiel für die Kontextmenü-Methode:
Der folgende Code zeigt ein Kontextmenü an der Cursorposition wenn der Benutzer mit der rechten Maustaste auf die Form clickt. Um dieses Beispiel auszuprobieren, erstellen sie eine Form mit einem Menü namens "mnuDatei" ("mnuDatei" braucht zumindest ein Untermenü). Kopieren sie den Code in den Deklarationsabschnitt der Form und starten Sie dieses Programm anschließend.
Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then PopupMenu mnuDatei
End Sub
In obigem Beispiel erscheint das Kontextmenü an der Position X, Y des Cursors, wenn die rechte Maustaste gedrückt wird (Button = 2). Schauen Sie in der Online-Hilfe von VB nach, um mehr über die Einstellungen zu erfahren, die für ein bestimmtes Verhalten von Kontextmenüs verwendet werden können.
Anmerkung: Alle Steuerelemente werden relativ zu den Koordinaten des einbettenden Objekts angezeigt, demnach würde ein Setzen von X und Y auf 0 ein Kontextmenü in der linken oberen Ecke der Form anzeigen.
Hauptseite
Übung 4 (Menü- und Listen-Bearbeitung)
Übung 12 (Multiple Document Interface)