Klicken Sie auf eine Schaltfläche, um eine Aktion auszuführen
Die einfachste Möglichkeit für Benutzer, mit Ihrer Anwendung zu interagieren, besteht darin, ihnen eine Schaltfläche zur Verfügung zu stellen. Sie können das von Visual Basic bereitgestellte CommandButton-Steuerelement oder ein Image-Steuerelement verwenden, das Grafiken, z. B. ein Symbol, enthält, um Ihre eigene „Schaltfläche“ zu erstellen.
Verwenden der Befehlsschaltfläche
Die meisten Visual Basic-Anwendungen verfügen über Befehlsschaltflächen, mit denen Benutzer Aktionen ausführen können, indem sie einfach auf die Schaltfläche tippen. Wenn der Benutzer eine Schaltfläche auswählt, wird nicht nur die Aktion ausgeführt, sondern die Schaltfläche scheint auch gedrückt und wieder losgelassen zu werden. Immer wenn der Benutzer auf die Schaltfläche klickt, wird die Click-Ereignisprozedur aufgerufen. Schreiben Sie Code in die Click-Ereignisprozedur, um die gewünschte Aktion auszuführen.
Es gibt viele Möglichkeiten, den CommandButton auszuwählen, während das Programm ausgeführt wird:
Klicken Sie mit der Maus auf die Schaltfläche.
Drücken Sie die TAB-Taste, um den Fokus auf die entsprechende Schaltfläche zu verschieben, und drücken Sie dann die LEERTASTE oder die EINGABETASTE, um die Schaltfläche auszuwählen. Siehe „Fokusübersicht“ weiter unten in diesem Kapitel.
Drücken Sie die Befehlsschaltflächen-Tastenkombination (ALT unterstrichenes Zeichen).
Legen Sie die Value-Eigenschaft des CommandButtons im Code auf True fest. cmdClose.Value=True
Rufen Sie das Click-Ereignis des CommandButton im Code auf. cmdClose_Click
Wenn die Befehlsschaltfläche die Standardbefehlsschaltfläche des Formulars ist, wird die Schaltfläche durch Drücken der Eingabetaste ausgewählt, auch wenn der Fokus auf andere Steuerelemente verschoben wird, bei denen es sich nicht um die Befehlsschaltfläche handelt. Geben Sie zur Entwurfszeit eine Schaltfläche als Standard-Befehlsschaltfläche des Formulars an, indem Sie deren Default-Eigenschaft auf True festlegen.
Wenn die Befehlsschaltfläche die standardmäßige Abbruchschaltfläche des Formulars ist, kann die Schaltfläche durch Drücken der ESC-Taste ausgewählt werden, auch wenn der Fokus auf andere Steuerelemente verschoben wird. Legen Sie zur Entwurfszeit eine Schaltfläche als Standardschaltfläche zum Abbrechen fest, indem Sie deren Eigenschaft „Abbrechen“ auf „True“ festlegen. Alle diese Vorgänge führen dazu, dass Visual Basic die Click-Ereignisprozedur aufruft.
Anwendung „Test Button“.
Verwenden Sie das Caption-Attribut, um Text auf der Schaltfläche anzuzeigen und dem Benutzer mitzuteilen, was die Schaltfläche bewirkt. In Abbildung 3.4 enthält das Testschaltflächenbeispiel in der Beispielanwendung „Control“ einen CommandButton mit der Caption-Eigenschaft „ChangeSignal“ (dieses Beispiel funktioniert für Buttons.frm in der Beispielanwendung „Controls.vbp“).
Beachten Sie, dass S die Tastenkombination für diese Schaltfläche ist und durch einen Unterstrich dargestellt wird. Durch Einfügen eines (&)-Symbols in den Text des Caption-Attributs werden die Zeichen nach diesem Symbol zur Tastenkombination für die Schaltfläche (z. B. „Ändern&Signal“).
Wenn der Benutzer auf den CommandButton klickt, wird der Code im Click-Ereignisprozess des CommandButton ausgeführt. In diesem Beispiel ändert sich jedes Mal, wenn auf die Schaltfläche geklickt wird, ein anderes Ampelsymbol.
Weitere Informationen zu den Eigenschaften von CommandButton finden Sie in Kapitel 7, „Verwenden der Standardsteuerelemente von Visual Basic“.
Steuerelemente zum Anzeigen und Eingeben von Text
Label- und TextBox-Steuerelemente werden zum Anzeigen und Eingeben von Text verwendet. Verwenden Sie eine Beschriftung, wenn die Anwendung Text in einem Formular anzeigt, und eine TextBox, wenn Sie dem Benutzer die Eingabe von Text ermöglichen. Der Text in Labels ist schreibgeschützter Text, während der Text in TextBox bearbeitbarer Text ist.
Text, der vom Benutzer bearbeitet werden kann, z. B. eine TextBox mit sequentiellem Eintrag
Feld oder ein Passwortfeld
Text, der nur angezeigt werden kann, z. B. zur Identifizierung einer Beschriftung in einem Formular
Felder bearbeiten oder dem Benutzer Anweisungen anzeigen
Beschriftungen und Textfelder werden in den folgenden Abschnitten erläutert:
Text mit Labels anzeigen (vbconUsingLabels) Grundkenntnisse in der Verwendung von Label-Steuerelementen.
Grundlagen der Arbeit mit TextBox mithilfe von TextBox (vbconWorkingWithTextBox).
Text mit Beschriftung anzeigen
Der vom Label-Steuerelement angezeigte Text kann vom Benutzer nicht direkt geändert werden. Steuerelemente wie TextBox und ScrollBar, die keine eigene Caption-Eigenschaft haben, können mit Label identifiziert werden. Der tatsächlich im Label angezeigte Text wird durch die Caption-Eigenschaft gesteuert, die zur Entwurfszeit im Fenster „Eigenschaften“ festgelegt oder zur Laufzeit mit Code zugewiesen werden kann.
Standardmäßig ist der Titel der einzige sichtbare Teil des Label-Steuerelements. Wenn Sie jedoch die BorderStyle-Eigenschaft auf 1 setzen (was zur Entwurfszeit möglich ist), hat das Label einen Rahmen und sieht aus wie eine TextBox. Sie können das Erscheinungsbild des Etiketts auch ändern, indem Sie die Eigenschaften „BackColor“, „BackStyle“, „ForeColor“ und „Font“ des Etiketts festlegen.
Ändern Sie die Etikettengröße, um sie an den Inhalt anzupassen
Den Titel eines einzeiligen Labels können Sie beim Design im Fenster „Eigenschaften“ festlegen. Was aber, wenn Sie einen längeren Titel oder einen Titel eingeben möchten, der sich zur Laufzeit ändern kann? Label bietet zwei Eigenschaften: AutoSize und WordWrap, um Ihnen dabei zu helfen, die Größe des Steuerelements an einen längeren oder kürzeren Titel anzupassen.
Die AutoSize-Eigenschaft bestimmt, ob die Größe des Steuerelements automatisch an seinen Inhalt angepasst wird. Wenn diese Eigenschaft auf „True“ gesetzt ist, ändert sich das Label horizontal entsprechend seinem Inhalt, wie in Abbildung 3.5 dargestellt.
Die WordWrap-Eigenschaft bewirkt, dass sich das Label entsprechend seinem Inhalt vertikal ändert, während seine Breite unverändert bleibt, wie in Abbildung 3.6 dargestellt. Eine funktionierende Version dieses Beispiels finden Sie unter WordWrap.frm im Anwendungsbeispiel Controls.vbp.
Beachten Sie, dass Sie beim Ausführen des AutoSize-Beispiels in Controls.vbp feststellen werden, dass beide Kontrollkästchen aktiviert sein müssen, um WordWrap gleichzeitig zu verwenden. Dies liegt daran, dass Sie AutoSize auf True setzen müssen, damit die WordWrap-Eigenschaft des Labels funktioniert. Die Breite des Labels erhöht sich nur, wenn die Breite eines einzelnen Wortes die aktuelle Breite des Steuerelements überschreitet.
Weitere Informationen zu den Eigenschaften des Label-Steuerelements finden Sie in Kapitel 7, „Verwenden der Standardsteuerelemente von Visual Basic“.
Verwenden von TextBoxen
TextBox ist ein Allzweck-Steuerelement, das vom Benutzer Text eingeben oder Text anzeigen kann. Sofern die Locked-Eigenschaft der TextBox nicht auf True festgelegt ist, können Sie die TextBox nicht zum Anzeigen von Text verwenden, den der Benutzer nicht ändern soll.
Der tatsächlich in der TextBox angezeigte Text wird durch die Text-Eigenschaft gesteuert. Die Text-Eigenschaft kann auf drei Arten festgelegt werden: im Eigenschaftenfenster zur Entwurfszeit, durch Code zur Laufzeit oder durch Benutzereingabe zur Laufzeit. Der aktuelle Inhalt der TextBox kann zur Laufzeit durch Lesen der Text-Eigenschaft abgerufen werden.
Mehrzeiliges TextBox und WordWrap
TextBox zeigt standardmäßig nur eine einzelne Textzeile und keine Bildlaufleiste an. Ist der Text länger als der verfügbare Platz, wird nur ein Teil des Textes angezeigt. Durch Festlegen der Eigenschaften MultiLine und ScrollBars (die nur beim Entwerfen des Programms festgelegt werden können) können Sie das Erscheinungsbild und Verhalten der TextBox ändern.
Achten Sie darauf, die ScrollBars-Eigenschaft nicht mit dem ScrollBar-Steuerelement zu verwechseln. Das ScrollBar-Steuerelement gehört nicht zur TextBox und verfügt über einen eigenen Satz von Eigenschaften.
Wenn Sie die MultiLine-Eigenschaft auf True setzen, kann die TextBox zur Laufzeit mehrere Textzeilen akzeptieren oder anzeigen. Solange keine horizontale Bildlaufleiste vorhanden ist, wird der Text in der mehrzeiligen TextBox automatisch entsprechend dem Wort umbrochen. Der Standardwert der ScrollBars-Eigenschaft ist auf 0 (Keine) festgelegt. Der automatische Zeilenumbruch erspart Benutzern das Einfügen von Zeilenumbrüchen am Zeilenende. Wenn eine Textzeile die Anzeigelänge überschreitet, faltet TextBox den Text zur Anzeige automatisch in die nächste Zeile.
Zur Entwurfszeit können im Eigenschaftenfenster keine Zeilenumbrüche eingegeben werden. Während des Vorgangs kann ein Zeilenumbruchpunkt generiert werden, indem ein Wagenrücklauf gefolgt von einem Zeilenumbruchzeichen (ANSI-Zeichen 13 und 0) eingefügt wird. Sie können auch die Konstante vbCrLf verwenden, um eine Kombination aus Wagenrücklauf und Zeilenvorschub einzufügen. Die folgende Ereignisprozedur ist beispielsweise ein Beispiel für das Platzieren von zwei Textzeilen in einer mehrzeiligen TextBox (Text1), wenn das Formular geladen wird.
SubForm_Load()
Text1.Text=Heretwolines_
&vbCrLf&inatextbox
EndSub
Verwenden von Text aus TextBox
Mit den Eigenschaften SelStart, SelLength und SelText von TextBox können Sie den Einfügepunkt und das Auswahlverhalten von TextBox steuern. Diese Eigenschaften sind nur zur Laufzeit verfügbar.
Wenn eine TextBox zum ersten Mal den Fokus erhält, befinden sich der Standardeinfügepunkt und die Cursorposition der TextBox ganz links im Text. Benutzer können sie mit Tastatur und Maus verschieben. Wenn die TextBox den Fokus verliert und dann wieder fokussiert wird, ist die Position des Einfügepunkts dieselbe wie die letzte vom Benutzer festgelegte Position.
In einigen Fällen stimmt es möglicherweise nicht mit den Benutzereinstellungen überein. Beispiel: In einer Textverarbeitungsanwendung möchte der Benutzer, dass neue Zeichen nach dem vorhandenen Text erscheinen; in einer Dateneingabeanwendung möchte der Benutzer, dass seine Eingabe den ursprünglichen Eintrag ersetzt. Mit den Eigenschaften SelStart und SelLength kann der Benutzer das Verhalten der TextBox nach Bedarf ändern.
Die SelStart-Eigenschaft ist eine Zahl, die den Einfügepunkt innerhalb der Textzeichenfolge angibt, wobei 0 die Position ganz links darstellt. Wenn der Wert der SelStart-Eigenschaft größer oder gleich der Anzahl der Zeichen im Text ist, wird die Einfügemarke nach dem letzten Zeichen platziert, wie in Abbildung 3.7 dargestellt. Eine funktionierende Version dieses Beispiels finden Sie unter Text.frm im Anwendungsbeispiel Controls.vbp. Die SelLength-Eigenschaft ist ein Wert, der die Breite des Einfügepunkts festlegt. Wenn Sie SelLength auf einen Wert größer als 0 festlegen, werden SelLength-Zeichen beginnend mit der aktuellen Einfügemarke ausgewählt und hervorgehoben. Abbildung 3.8 zeigt die Leistung der Auswahl.
Wenn ein Text ausgewählt wird, ersetzt der vom Benutzer eingegebene Text den ausgewählten Text. In manchen Fällen können Sie auch den Befehl „Einfügen“ verwenden, um den Originaltext durch neuen Text zu ersetzen. Die SelText-Eigenschaft ist eine Textzeichenfolge, der zur Laufzeit ein Wert zugewiesen werden kann, um den aktuell ausgewählten Text zu ersetzen. Wenn kein Text ausgewählt ist, fügt SelText Text an der aktuellen Einfügemarke ein.
Weitere Informationen zu den Eigenschaften des TextBox-Steuerelements finden Sie in Kapitel 7, „Verwenden der Standardsteuerelemente von Visual Basic“.
Weitere Informationen zu den Eigenschaften des TextBox-Steuerelements finden Sie in Kapitel 7, „Verwenden der Standardsteuerelemente von Visual Basic“.
->