TextBox (Textfelder) zum Eingeben von Text

            Abbildung:     Das Textfeld-Steuerelement

Textfelder sind vielseitige Steuerelemente, mit denen Sie Eingaben vom Benutzer erhalten oder Text ausgeben können. Textfelder sollten nicht zur Darstellung von Text verwendet werden, den der Benutzer nicht verändern soll, es sei denn, Sie haben die Locked-Eigenschaft auf True gesetzt.

Der Text, der in einem Textfeld angezeigt wird, wird mit der Text-Eigenschaft auf eine von drei Arten festgelegt: zur Entwurfszeit im Eigenschaftenfenster, zur Laufzeit aus dem Code heraus oder zur Laufzeit durch die Eingabe des Benutzers. Der aktuelle Inhalt eines Textfeldes kann während der Laufzeit abgerufen werden, indem die Text-Eigenschaft gelesen wird. Standardmäßig können Sie bis zu 2048 Zeichen in ein Textfeld eingeben. Wenn Sie die MultiLine-Eigenschaft des Steuerelements auf True setzen, können Sie bis zu 32 KB an Text eingeben.

Besonderheiten beim Umgang mit Text

Mit Hilfe eines Leerstrings kann man ein Textfeld leeren:           Text1.Text = ""

Mehrere Textteile werden durch einen &-Operator zu einem Text verbunden:

   Text1.Text = "Zwei Teile" & "ergeben einen Text"

Mehrzeilige Textfelder und automatischer Zeilenumbruch

Standardmäßig zeigt ein Textfeld eine einzelne Textzeile an und enthält keine Bildlaufleiste. Wenn der Text mehr Platz als verfügbar einnimmt, ist der Text nicht vollständig sichtbar. Das Aussehen und das Verhalten eines Text­feldes wird von zwei Eigenschaften beeinflußt: MultiLine und ScrollBars. Diese Eigenschaften können nur zur Entwurfszeit festgelegt werden.

Anmerkung   Die ScrollBars-Eigenschaft ist nicht zu verwechseln mit den Bildlaufleisten-Steuerelementen. Bildlaufleisten-Steuerelemente sind nicht mit Textfeldern verbunden und verfügen über eigene Eigenschaften.

Wenn Sie MultiLine auf True setzen, können in einem Textfeld zur Laufzeit mehrere Textzeilen eingegeben oder angezeigt werden. Ein mehrzeiliges Textfeld verwaltet den automatischen Zeilenumbruch selbständig, sofern es keine horizontale Bildlaufleiste enthält. Die ScrollBars-Eigenschaft ist standardmäßig auf "0-Keine" eingestellt. Durch den automatischen Zeilenumbruch muß der Benutzer am Zeilenende keine Zeilenumbrüche mehr einfügen. Wenn eine Textzeile zu lang ist, wird der Text vom Textfeld in die nächste Zeile umbrochen.

Außerdem können Sie die ScrollBars-Eigenschaft so festlegen, dass entweder eine horizontale oder eine vertikale Bildlaufleiste oder beides hinzugefügt wird. Der automatische Textumbruch ist allerdings nicht verfügbar, wenn Sie eine horizontale Bildlaufleiste hinzufügen, da die Bildlaufleiste den horizontalen Bearbeitungsbereich erweitert.

Wenn die MultiLine-Eigenschaft auf True gesetzt ist, können Sie auch die Ausrichtung des Texts (Alignment) auf Links, Zentriert oder Rechts einstellen. Ist die MultiLine-Eigenschaft auf False gesetzt, hat das Festlegen der Alignment-Eigenschaft keine Auswirkungen.

Zeilenumbrüche können zur Entwurfszeit nicht im Eigenschaftenfenster eingegeben werden. In einer Prozedur erzeugen Sie einen Zeilenumbruch durch Einfügen eines Wagenrücklaufzeichens mit anschließendem Zeilen­vorschubzeichen (ANSI-Zeichen 13 und 10). Sie können die Kombination von Wagenrücklauf (Cr) und Zeilen­vorschub (Lf) auch durch die Konstante vbCrLf eingeben. Die folgende Ereignisprozedur fügt zum Beispiel zwei Textzeilen in ein mehrzeiliges Textfeld (Text1) ein, wenn das Formular geladen wird:

Sub Form_Load ()

   Text1.Text = "Zwei Zeilen" & vbCrLf & "in einem Textfeld"

End Sub

Arbeiten mit Text in einem Textfeld

Wenn ein Textfeld zum ersten Mal den Fokus erhält, befindet sich die Standard-Einfügemarke bzw. die Cursor-Position innerhalb des Textfeldes jeweils links vom vorhandenen Text. Der Benutzer kann die Position durch eine Eingabe über die Tastatur oder mittels der Maus verändern. Nachdem das Textfeld den Fokus abgegeben und zurückerhalten hat, befindet sich die Einfügemarke genau an der Stelle, an der zuletzt gearbeitet wurde.

In manchen Fällen erscheint dieses Verhalten möglicherweise verwirrend. Bei einer Textverarbeitung würde der Benutzer eher erwarten, dass die neuen Zeichen hinter dem vorhandenen Text erscheinen. Bei einer Anwendung zur Datenerfassung dagegen geht der Benutzer davon aus, dass die vorhandenen Einträge durch seine neue Eingabe überschrieben werden.

Mit den Eigenschaften SelStart und SelLength können Sie das Verhalten der Einfügemarke und das Auswahlverhalten eines Textfeldes an Ihre speziellen Anforderungen anpassen. Diese Eigenschaften stehen nur zur Laufzeit zur Verfügung.

Die SelStart-Eigenschaft ist ein Wert, der die Position der Einfügemarke innerhalb einer Zeichenfolge angibt, wobei 0 die erste ganz linke Position ist. Wenn die SelStart-Eigenschaft auf einen Wert gesetzt wird, der gleich oder größer der Anzahl von Zeichen in einem Textfeld ist, wird die Einfüge­marke hinter das letzte Zeichen ge­setzt, wie in Abbildung 15 dargestellt.

Abbildung 15   Einfügemarken-Beispiel

Eine ausführbare Version dieses Beispiels finden Sie im Formular Text.frm in der Beispielanwendung Controls.vbp.

Die SelLength-Eigenschaft ist ein numerischer Wert, der die Breite der Einfügemarke festlegt. Wenn SelLength auf einen Wert größer 0 gesetzt wird, wird die entsprechende Anzahl von Zeichen ab der aktuellen Einfügemarke ausgewählt und markiert. Abbildung 16 zeigt das Auswahlverhalten an.

Abbildung 16   Auswahl-Beispiel

Wenn ein Benutzer mit der Texteingabe beginnt, solange noch ein Textblock markiert ist, wird der markierte Text ersetzt. In manchen Fällen kann es hilfreich sein, markierten Text mit dem Befehl Einfügen durch neuen Text zu ersetzen. Die SelText-Eigenschaft ist eine Zeichenfolge, die Sie zur Laufzeit festlegen können, wenn die aktuelle Markierung durch diesen Text ersetzt werden soll. Falls kein Text markiert wurde, fügt SelText den Text an der aktuellen Einfügemarke ein.

Um die Länge eines Textes im Textfeld zu bestimmen, benutzen Sie bitte die Textfunktion Len, die Funktion Len(Text1.Text) liefert zum Beispiel die Anzahl der Zeichen in der Textbox Text1.

Auch die anderen Textfunktionen im Anhang dieses Handbuchs können bei der Bearbeitung des in der Textbox vorhandenen Texts hilfreich sein.