Erneute Diskussion über Formulare
Zusätzlich zu den Gestaltungsprinzipien des Formulars müssen Sie auch berücksichtigen, wo Ihre Bewerbung beginnt und endet. Es gibt einige Techniken, um zu entscheiden, wie Ihre Bewerbung beim Start aussehen soll. Es ist auch wichtig, mit einigen Vorgängen vertraut zu sein, die bei der Deinstallation einer Anwendung auftreten.
Startformular festlegen
Standardmäßig wird das erste Formular in der Anwendung als Startformular festgelegt. Dieses Formular wird angezeigt, wenn die Anwendung ausgeführt wird (der erste auszuführende Code ist also der Code im Form_Initialize-Ereignis des Formulars). Wenn Sie beim Start der Anwendung ein anderes Formular anzeigen möchten, müssen Sie das Startformular ändern.
Um das Startformular zu ändern, gehen Sie folgendermaßen vor:
1. Wählen Sie im Menü „Projekt“ die Option „Projekteigenschaften“ aus.
2. Wählen Sie „Allgemein“.
3. Wählen Sie im Listenfeld „Startobjekt“ das Formular aus, das das neue Startformular sein soll.
4. Wählen Sie OK.
Starten Sie ohne Startformular
Manchmal möchten Sie die Anwendung möglicherweise starten, ohne Formulare zu laden. Beispielsweise möchten Sie möglicherweise Code ausführen, der eine Datendatei lädt, und dann basierend auf dem Inhalt der Datendatei entscheiden, welches der verschiedenen Formulare angezeigt werden soll. Erstellen Sie dazu im Standardmodul einen Unterprozess mit dem Namen Main, wie im folgenden Beispiel gezeigt.
SubMain()
DimintStatusAsInteger
'Rufen Sie eine Funktionsprozedur auf, um den Benutzerstatus zu überprüfen.
intStatus=GetUserStatus
'Zeigen Sie ein Startformular basierend auf dem Status an.
IfintStatus=1Then
frmMain.Show
Anders
frmPassWord.Show
EndIf
Diese Prozedur muss eine Unterprozedur sein und darf nicht innerhalb eines Formularmoduls sein. Um den SubMain-Prozess als Startobjekt festzulegen, wählen Sie „Projekteigenschaften“ aus dem Menü „Projekt“, wählen Sie dann „Allgemein“ und dann „SubMain“ aus dem Feld „Startobjekt“.
Beim Start Schnellanzeige anzeigen
Wenn beim Start ein langer Ausführungsprozess erforderlich ist, z. B. das Laden einer großen Datenmenge aus einer Datenbank oder das Laden einiger großer Bitmaps, möchten Sie möglicherweise beim Start eine schnelle Anzeige bereitstellen. Eine Schnellanzeige ist ein Formular, das normalerweise Inhalte wie den Anwendungsnamen, Copyright-Informationen und eine einfache Bitmap anzeigt. Der beim Starten von Visual Basic angezeigte Bildschirm ist eine Schnellanzeige.
Um eine schnelle Anzeige anzuzeigen, müssen Sie den SubMain-Prozess als Startobjekt verwenden und die Show-Methode verwenden, um das Formular anzuzeigen:
PRivateSubMain()
'Schnellanzeige anzeigen.
frmSplash.Show
'Hier Startvorgang hinzufügen.
...
'Zeigen Sie das Hauptformular und entladen Sie die Schnellanzeige.
frmMain.Show
Entladen Sie frmSplash
EndSub
Eine schnelle Anzeige kann die Aufmerksamkeit des Benutzers erregen, wenn eine Startroutine ausgeführt wird, und den Eindruck erwecken, dass die Anwendung schnell geladen wird. Wenn diese Startroutinen abgeschlossen sind, kann das erste Formular geladen und schnell wieder entladen angezeigt werden.
Halten Sie es bei Schnelldarstellungsdesigns so einfach wie möglich. Wenn Sie viele Bitmaps oder viele Steuerelemente verwenden, wird die schnelle Anzeige selbst langsam geladen.
Bewerbung beenden
Ereignisgesteuerte Anwendungen werden nicht mehr ausgeführt, wenn alle Formulare geschlossen wurden und kein Code ausgeführt wird. Wenn beim Schließen des letzten sichtbaren Formulars noch ausgeblendete Formulare vorhanden sind, scheint die Anwendung beendet zu sein (da keine sichtbaren Formulare vorhanden sind), tatsächlich wird die Anwendung jedoch weiter ausgeführt, bis alle ausgeblendeten Formulare geschlossen sind. Dies liegt daran, dass jeder Zugriff auf Eigenschaften oder Steuerelemente eines entladenen Formulars dazu führt, dass dieses Formular implizit und unbeaufsichtigt geladen wird.
Der beste Weg, solche Probleme beim Schließen einer Anwendung zu vermeiden, besteht darin, sicherzustellen, dass alle Formulare entladen werden. Wenn mehr als ein Formular vorhanden ist, können Sie die Forms-Sammlung und die Unload-Anweisung verwenden. Beispielsweise kann im Hauptformular eine Befehlsschaltfläche namens cmdQuit verwendet werden, um das Programm zu beenden. Wenn die Anwendung nur ein Formular hat, kann die Click-Ereignisprozedur einfach wie folgt aussehen:
PrivateSubcmdQuit_Click()
Entlade mich
EndSub
Wenn Ihre Anwendung mehrere Formulare verwendet, können Sie diese Formulare entladen, indem Sie Code in die Ereignisprozedur „Unload“ des Hauptformulars einfügen. Mithilfe der Forms-Sammlung können Sie sicherstellen, dass alle Formulare gefunden und geschlossen werden. Der folgende Code verwendet die Formularsammlung, um alle Formulare zu entladen:
PrivateSubForm_Unload(CancelAsInteger)
Dimiasinteger
„Durchlaufen Sie die Formularsammlung und entladen Sie jedes Formular.“
Fori=Forms.Count-1to0Step-1
UnloadForms(i)
Nächste
EndSub
Es gibt Situationen, in denen es notwendig ist, die Anwendung zu beenden, unabhängig vom Status vorhandener Formulare oder Objekte. Zu diesem Zweck stellt Visual Basic die End-Anweisung zur Verfügung.
Die End-Anweisung bewirkt, dass die Anwendung sofort beendet wird: Der Code nach der End-Anweisung wird nicht ausgeführt und es treten keine weiteren Ereignisse auf. Insbesondere führt Visual Basic keine der Ereignisprozeduren QueryUnload, Unload oder Terminate des Formulars aus. Jeder Verweis auf das Objekt wird freigegeben. Wenn Sie jedoch Ihre eigenen Klassen definieren, führt Visual Basic das Terminate-Ereignis der von diesen Klassen erstellten Objekte nicht aus.
Zusätzlich zur End-Anweisung kann die Stop-Anweisung eine Anwendung anhalten. Die Stop-Anweisung kann jedoch nur während des Debuggens verwendet werden, da sie den Verweis auf das Objekt nicht freigibt.
Weitere Informationen zur Stop-Anweisung finden Sie unter „Verwenden des Interrupt-Modus“ in Kapitel 13, „Code debuggen und Fehler behandeln“ und „Stop-Anweisung“ in der Sprachreferenz. Informationen zu Formularsammlungen oder zum Freigeben von Objektreferenzen finden Sie in Kapitel 9, „Programmieren mit Objekten“.
Verwenden von Menüs in Anwendungen
Viele einfache Anwendungen bestehen nur aus einem Formular und einigen Steuerelementen, aber die Funktionalität einer Visual Basic-Anwendung kann durch das Hinzufügen von Menüs erweitert werden. In diesem Abschnitt wird erläutert, wie Sie Menüs in Ihrer Anwendung erstellen und verwenden.
Erstellen Sie Menüs mit dem Menüeditor
Mit dem Menü-Editor können Sie neue Menüs und Menüleisten erstellen, neue Befehle zu vorhandenen Menüs hinzufügen, vorhandene Menübefehle durch Ihre eigenen Befehle ersetzen sowie vorhandene Menüs und Menüleisten ändern und löschen.
So zeigen Sie den Menüeditor an:
Wählen Sie im Menü „Extras“ die Option „Menüeditor“.
-oder-
Klicken Sie in der Symbolleiste auf die Schaltfläche „Menüeditor“. Dadurch wird der Menüeditor geöffnet, wie in Abbildung 6.7 dargestellt.
Obwohl die meisten Menüsteuerelementeigenschaften mit dem Menüeditor festgelegt werden können, sind alle Menüeigenschaften auch im Eigenschaftenfenster verfügbar. Die beiden wichtigsten Eigenschaften des Menüsteuerelements sind:
Name – Dies ist der Name, mit dem im Code auf die Menüsteuerung verwiesen wird.
Beschriftung – Dies ist der Text, der auf dem Steuerelement angezeigt wird.
Weitere Eigenschaften im Menüeditor, einschließlich Index, Checked und NegotiatePosition, werden später in diesem Kapitel beschrieben.
Verwendung des Listenfelds im Menüeditor
Das Listenfeld „Menüsteuerelemente“ (im unteren Teil des Menüeditors) listet alle Menüsteuerelemente für das aktuelle Formular auf. Wenn Sie ein Menüelement in das Titeltextfeld eingeben, wird das Element auch im Listenfeld der Menüsteuerung angezeigt. Wählen Sie im Listenfeld ein vorhandenes Menüsteuerelement aus, um die Eigenschaften des Steuerelements zu bearbeiten.
Abbildung 6.7 zeigt beispielsweise die verschiedenen Menüsteuerelemente für das Menü „Datei“ in einer typischen Anwendung. Die Position eines Menüsteuerelements im Listenfeld des Menüsteuerelements bestimmt, ob es sich bei dem Steuerelement um einen Menütitel, ein Menüelement, einen Untermenütitel oder ein Untermenüelement handelt:
Ein Menüsteuerelement, das sich bündig links neben einem Listenfeld befindet, erscheint in der Menüleiste als Menütitel.
Ein eingerücktes Menüsteuerelement in einem Listenfeld wird nur dann im Menü angezeigt, wenn auf den führenden Menütitel geklickt wird.
Ein eingerücktes Menüsteuerelement wird zum Titel eines Untermenüs, wenn darauf einige Menüsteuerelemente folgen, die erneut eingerückt sind. Jedes unter dem Untermenütitel eingerückte Menüsteuerelement wird zum Menüelement dieses Untermenüs.
Ein Menüsteuerelement mit einem Bindestrich (-) als Caption-Eigenschaft wird als Trennleiste angezeigt. Trennbalken unterteilen Menüpunkte in logische Gruppen. Beachten Sie, dass ein Menüsteuerelement nicht als Trennleiste verwendet werden kann, wenn es sich um einen Menütitel handelt, über Untermenüelemente verfügt, aktiviert oder deaktiviert ist oder über eine Tastenkombination verfügt.
Gehen Sie folgendermaßen vor, um im Menü-Editor ein Menüsteuerelement zu erstellen:
1.Wählen Sie das Formular aus
2. Wählen Sie im Menü „Extras“ die Option „Menüeditor“. – oder – Klicken Sie in der Symbolleiste auf die Schaltfläche „Menüeditor“.
3. Geben Sie im Textfeld „Titel“ den Text ein, der in der Menüleiste für den ersten Menütitel angezeigt werden soll. Wenn Sie möchten, dass ein bestimmtes Zeichen zum Zugriffsschlüssel für den Menüpunkt wird, können Sie vor dem Zeichen auch ein (&)-Zeichen hinzufügen. In Menüs wird dieses Zeichen automatisch unterstrichen.
Der Menütiteltext wird im Listenfeld der Menüsteuerung angezeigt.
4. Geben Sie im Textfeld „Name“ einen Namen ein, der als Verweis auf das Menüsteuerelement im Code verwendet wird. Siehe „Menütitel und Benennungsrichtlinien“ weiter unten in diesem Kapitel.
5. Klicken Sie auf die linke oder rechte Pfeilschaltfläche, um die Einrückungsstufe des Steuerelements zu ändern.
6. Bei Bedarf können Sie auch weitere Eigenschaften des Steuerelements festlegen. Diese Arbeit kann im Menüeditor oder später im Fenster „Eigenschaften“ durchgeführt werden.
7. Wählen Sie „Weiter“, um ein weiteres Menüsteuerelement zu erstellen. -oder- Klicken Sie auf Einfügen, um ein Menüsteuerelement zwischen vorhandenen Steuerelementen hinzuzufügen. Sie können auch auf die Aufwärts- und Abwärtspfeilschaltflächen klicken, um Steuerelemente zwischen vorhandenen Menüsteuerelementen zu verschieben.
8. Wenn alle Menüsteuerelemente des Formulars erstellt wurden, wählen Sie „OK“, um den Menüeditor zu schließen. Der erstellte Menütitel wird im Formular angezeigt. Klicken Sie zur Entwurfszeit auf einen Menütitel, um den entsprechenden Menüpunkt aufzuklappen.
separate Menüpunkte
Eine Trennleiste erscheint in einem Menü als horizontale Linie zwischen Menüelementen. In einem Menü mit vielen Elementen können Sie Trennleisten verwenden, um die Elemente in logische Gruppen zu unterteilen. Beispielsweise verwendet das Menü „Hilfe“ von Visual Basic Trennleisten, um seine Menüelemente in drei Gruppen zu unterteilen, wie in Abbildung 6.8 dargestellt.
Um im Menüeditor eine Trennleiste zu erstellen, gehen Sie folgendermaßen vor:
1. Wenn Sie einem bestehenden Menü eine Trennleiste hinzufügen möchten, wählen Sie „Einfügen“ und fügen Sie ein Menüsteuerelement zwischen den Menüpunkten ein, die Sie trennen möchten.
2. Klicken Sie bei Bedarf auf die Schaltfläche mit dem Pfeil nach rechts, um das neue Menüelement auf die gleiche Ebene einzurücken wie das Menüelement, von dem es getrennt ist.
3. Geben Sie einen Bindestrich (-) in das Textfeld „Titel“ ein.
4.Legen Sie das Attribut „Name“ fest.
5. Wählen Sie OK, um den Menüeditor zu schließen.
Beachten Sie , dass Trennleisten zwar als Menüsteuerelemente erstellt werden, jedoch nicht auf Klickereignisse reagieren und nicht ausgewählt werden können.
Weisen Sie Zugriffstasten und Tastenkombinationen zu
Verbessern Sie den Tastaturzugriff auf Menübefehle, indem Sie Zugriffstasten und Tastenkombinationen definieren.
Zugangsschlüssel
Zugriffstasten ermöglichen das Drücken der ALT-Taste und die Eingabe eines bestimmten Zeichens, um ein Menü zu öffnen. Sobald das Menü geöffnet ist, kann das Steuerelement durch Drücken des zugewiesenen Zeichens (Zugriffstaste) ausgewählt werden. Drücken Sie beispielsweise die ALT-E-Taste, um das Menü „Bearbeiten“ zu öffnen, und drücken Sie dann die P-Taste, um den Menüpunkt „Einfügen“ auszuwählen. Im Titel des Menüsteuerelements erscheint ein angegebener Zugriffsschlüssel als unterstrichener Buchstabe, wie in Abbildung 6.9 dargestellt.
Um den Menüsteuerelementen im Menü-Editor Zugriffstasten zuzuweisen, führen Sie die folgenden Schritte aus:
1. Wählen Sie den Menüpunkt aus, dem die Zugangstaste zugewiesen werden soll.
2. Geben Sie im Feld „Titel“ ein (&)-Zeichen direkt vor dem Zeichen ein, das Sie als Zugriffsschlüssel verwenden möchten.
Wenn beispielsweise das in Abbildung 6.9 gezeigte Menü „Bearbeiten“ geöffnet ist, reagiert der folgende Einstellungswert der Caption-Eigenschaft auf die entsprechende Taste.
Beachten Sie, dass in Menüs keine doppelten Zugriffsschlüssel verwendet werden können. Wenn mehrere Menüelemente denselben Zugriffsschlüssel verwenden, hat der Schlüssel keine Wirkung. Wenn beispielsweise C die Zugriffstaste für „Ausschneiden“ und „Kopieren“ ist, wird der Befehl „Kopieren“ ausgewählt, wenn Sie das Menü „Bearbeiten“ auswählen und C eingeben, jedoch erst nach Drücken der EINGABETASTE Anwendung Dieser Befehl wird ausgeführt. Und der Befehl „Ausschneiden“ wird überhaupt nicht ausgeführt.
Tastenkombination
Eine Tastenkombination führt beim Drücken sofort einen Menüpunkt aus. Sie können häufig verwendeten Menüelementen eine Tastenkombination zuweisen, die eine einstufige Tastaturzugriffsmethode anstelle der dreistufigen Methode bietet, bei der Sie die ALT-Taste gedrückt halten, den Menütitel drücken, um auf das Zeichen zuzugreifen, und dann das Menü drücken Element, um auf den Charakter zuzugreifen. Die Zuweisung von Tastenkombinationen umfasst eine Kombination aus Funktionstasten und Steuertasten, beispielsweise die Taste STRG F1 oder die Taste STRG A. Sie erscheinen rechts neben dem entsprechenden Menüpunkt im Menü, wie in Abbildung 6.10 dargestellt.
Um einem Menüelement eine Tastenkombination zuzuweisen, gehen Sie folgendermaßen vor:
1. Öffnen Sie den „Menü-Editor“.
2. Wählen Sie diesen Menüpunkt.
3. Wählen Sie im Kombinationsfeld „Tastenkombination“ eine Funktionstaste oder Tastenkombination aus.
Um eine Tastenkombinationszuweisung zu entfernen, wählen Sie oben in der Liste „(keine)“ aus.
Beachten Sie, dass die Tastenkombination automatisch im Menü angezeigt wird. Daher ist es nicht erforderlich, die STRG-Taste in das Titelfeld des Menüeditors einzugeben.
Menütitel und Benennungsrichtlinien
Um die Konsistenz mit anderen Anwendungen zu gewährleisten, empfiehlt es sich, beim Erstellen von Menüs die etablierten Benennungsrichtlinien zu befolgen.
Legen Sie die Caption-Eigenschaft fest
Wenn Sie Menüelementen Titelwerte zuweisen, sollten Sie versuchen, die folgenden Richtlinien zu befolgen:
1. Die Elementnamen im Menü sollten eindeutig sein, ähnliche Aktionselemente in verschiedenen Menüs können jedoch denselben Namen haben.
2. Der Projektname kann ein Wort, ein zusammengesetztes Wort oder mehrere Wörter sein.
3. Jeder Projektname sollte über ein eindeutiges Speicherzugriffszeichen zur Auswahl von Befehlen über die Tastatur verfügen. Das Zugriffszeichen sollte der erste Buchstabe des Menütitels sein, es sei denn, zwei Menütitel können nicht dasselbe Zugriffszeichen verwenden. Weitere Informationen zum Zuweisen von Zugriffs- und Tastenkombinationen finden Sie im Abschnitt „Erstellen von Menüs mit dem Menü-Editor“ weiter oben in diesem Kapitel.
4. Wenn für einen Befehl vor Abschluss zusätzliche Informationen erforderlich sind, sollte nach seinem Namen ein Auslassungszeichen (...) stehen, z. B. bei einem Befehl, der ein Dialogfeld anzeigt („Speichern unter…“, „Einstellungen…“). .
5. Halten Sie den Projektnamen so kurz wie möglich. Bei einer Lokalisierung der Anwendung würde sich die Wortlänge in der Fremdsprachenversion um fast 30 Prozent erhöhen, sodass möglicherweise nicht genügend Platz für die Auflistung der einzelnen Menüpunkte vorhanden wäre. Weitere Einzelheiten zur Anwendungslokalisierung finden Sie in Kapitel 16, „Internationale Verbreitung“.
Benennungskonvention für Menüs
Um Ihren Code besser lesbar und wartbar zu machen, empfiehlt es sich, beim Festlegen der Name-Eigenschaft im Menüeditor einer etablierten Namenskonvention zu folgen. Die meisten Namenskonventionsregeln empfehlen, das Objekt mit einem Präfix (d. h. mnu für ein Menüsteuerelement) zu identifizieren, gefolgt vom Namen des Menüs der obersten Ebene (z. B. Datei). Bei Untermenüs folgt hierauf der Titel des Untermenüs (z. B. mnuFileOpen).
Weitere Informationen finden Sie in Anhang B, „Visual Basic-Codierungskonventionen“ mit Beispielen empfohlener Namenskonventionen. Beispiele für empfohlene Namenskonventionen finden Sie unter „VisualBasic-Codierungskonventionen“.
->