Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 12 Die wichtigsten Steuerelemente
Pfeil 12.1 Gemeinsamkeiten
Pfeil 12.1.1 Größe und Position
Pfeil 12.1.2 Sichtbarkeit und Aktivierungszustand
Pfeil 12.1.3 Beschriftung
Pfeil 12.1.4 Farben
Pfeil 12.1.5 Grafische Darstellung
Pfeil 12.1.6 Zugriffsrechte
Pfeil 12.1.7 Zusatzinformationen speichern
Pfeil 12.1.8 Position bei Größenänderung der Form
Pfeil 12.1.9 Die Größe mit der Form skalieren
Pfeil 12.1.10 Kindelemente
Pfeil 12.1.11 Steuerelemente fokussieren
Pfeil 12.1.12 Maus- und Tastaturereignisse
Pfeil 12.2 Schaltflächen (Button)
Pfeil 12.2.1 Rahmendarstellung
Pfeil 12.2.2 Beschriftung und Grafiken
Pfeil 12.3 Auswahlkästchen (CheckBox)
Pfeil 12.3.1 Eigenschaften
Pfeil 12.3.2 Drei Zustände
Pfeil 12.4 Gruppierung (GroupBox)
Pfeil 12.5 Optionsschaltflächen (RadioButton)
Pfeil 12.5.1 Gruppierung
Pfeil 12.5.2 Eigenschaften
Pfeil 12.5.3 Zustandswechsel programmieren
Pfeil 12.6 Texteingabefelder (TextBox)
Pfeil 12.6.1 Einzeilige Eingabefelder
Pfeil 12.6.2 Mehrzeilige Eingabefelder
Pfeil 12.7 Beschriftungen (Label)
Pfeil 12.8 Popuptextfenster (ToolTip)
Pfeil 12.8.1 Definition von Hinweistexten
Pfeil 12.8.2 Anzeigedauer der Texte
Pfeil 12.8.3 Weitere Eigenschaften
Pfeil 12.9 Auswahllisten (ListBox)
Pfeil 12.9.1 Daten einer ListBox
Pfeil 12.9.2 Darstellung einer Listbox
Pfeil 12.9.3 Einfach- und Mehrfachauswahl
Pfeil 12.9.4 Listboxen mit Einfachauswahl
Pfeil 12.9.5 Listboxen mit Mehrfachauswahl
Pfeil 12.9.6 Benutzerdefinierte Sortierung
Pfeil 12.9.7 Auswahlliste mit Datenquelle (DataSource)
Pfeil 12.10 Markierte Auswahllisten (CheckedListBox)
Pfeil 12.11 Kombinationslistenfelder (ComboBox)
Pfeil 12.11.1 Ereignisse
Pfeil 12.11.2 Autovervollständigung
Pfeil 12.12 Standarddialoge
Pfeil 12.12.1 Datei zum Öffnen wählen (OpenFileDialog)
Pfeil 12.12.2 Datei zum Speichern wählen (SaveFileDialog)
Pfeil 12.12.3 Ordner selektieren (FolderBrowserDialog)
Pfeil 12.12.4 Farbe bekennen (ColorDialog)
Pfeil 12.12.5 Schriftart wählen (FontDialog)
Pfeil 12.13 Menüs, Symbol- und Statusleisten
Pfeil 12.13.1 Menüsammlung (ToolStripContainer)
Pfeil 12.13.2 Menüdefinition
Pfeil 12.13.3 Eigenschaften von Menüs
Pfeil 12.13.4 Kontextmenüs
Pfeil 12.13.5 Symbolleisten
Pfeil 12.13.6 Statusleisten
Pfeil 12.14 Bildlaufleisten (HScrollBar und VScrollBar)
Pfeil 12.15 Fortschrittsbalken (ProgressBar)
Pfeil 12.16 Animationen (Timer)
Pfeil 12.17 Container (Panel)
Pfeil 12.18 Registerkarten (TabControl)
Pfeil 12.19 Baumansichten (TreeView und TreeNode)
Pfeil 12.19.1 Knotenpunkte definieren
Pfeil 12.19.2 Eigenschaften
Pfeil 12.19.3 Ereignisse
Pfeil 12.19.4 Knotenexpansion und -reduktion
Pfeil 12.19.5 Knoten (TreeNode)
Pfeil 12.20 Teiler (Splitter und SplitContainer)
Pfeil 12.20.1 Splitter
Pfeil 12.20.2 SplitContainer
Pfeil 12.21 Listenansicht (ListView)
Pfeil 12.21.1 Beteiligte Klassen
Pfeil 12.21.2 Eigenschaften und Ereignisse
Pfeil 12.21.3 Listenelemente (ListViewItem)
Pfeil 12.21.4 Unterelemente in Spalten (ListViewSubItem)
Pfeil 12.21.5 Spaltenüberschriften (ColumnHeader)
Pfeil 12.21.6 Listenelemente Gruppen zuordnen
Pfeil 12.21.7 Sortierung der Spalten
Pfeil 12.21.8 Listenelemente ändern
Pfeil 12.21.9 Dateiexplorer-Beispiel


Rheinwerk Computing - Zum Seitenanfang

12.6 Texteingabefelder (TextBox) Zur nächsten ÜberschriftZur vorigen Überschrift

Texteingabefelder, die auf Instanzen der Klasse TextBox basieren, die aus der abstrakten Klasse TextBoxBase abgeleitet ist, lassen sich in zwei Gruppen kategorisieren:

  • einzeilige Eingabefelder
  • mehrzeilige Eingabefelder

Beiden ist ein besonderes Merkmal zu eigen: Die in einem Texteingabefeld angezeigte Zeichenfolge ist immer von derselben Schriftart, -darstellung und -größe.


Rheinwerk Computing - Zum Seitenanfang

12.6.1 Einzeilige Eingabefelder Zur nächsten ÜberschriftZur vorigen Überschrift

Widmen wir uns zunächst den einzeiligen Eingabefeldern. Die wichtigste Eigenschaft beschreibt die angezeigte Zeichenfolge und heißt Text. Standardmäßig wird die Zeichenfolge am linken Rand des Steuerelements ausgerichtet; sie kann allerdings auch mit der Eigenschaft TextAlign mittig oder rechts in der Textbox angezeigt werden. Die Anzahl der Zeichen, die in Sie eine Textbox eingegeben dürfen, wird durch die Eigenschaft MaxLength beschränkt. Die Länge des aktuellen Inhalts steht in der schreibgeschützten Eigenschaft TextLength.

Wenn Sie eine Textbox aus der Toolbox in die Arbeitsfläche des Formulars ziehen und versuchen, die Höhe der Textbox manuell einzustellen, werden Sie feststellen, dass sich diese Größe unter Zuhilfenahme der Markierungspunkte nicht verändern lässt. Standardmäßig passt sich die Höhe einer Textbox immer der eingestellten Schriftgröße an, die auf 8,25 Punkt voreingestellt ist.

Ändern Sie die Schriftgröße, ändert sich die Höhe der Textbox automatisch. Dieses Verhalten ist insbesondere dann inakzeptabel, wenn zur Laufzeit die Schriftgröße durch den Anwender verändert werden kann. Dann kann die Textbox ein anderes Steuerelement überdecken. Die Ursache für dieses Verhalten ist die Eigenschaft AutoSize. Diese gibt mit dem Standardwert True an, dass die Höhe des Steuerelements automatisch angepasst wird, wenn die dem Steuer-element zugewiesene Schriftgröße geändert wird. Wollen Sie die Höhe der Textbox dennoch manuell festlegen, legen Sie die AutoSize-Eigenschaft auf False fest. Leider wird AutoSize nicht im Eigenschaftsfenster angezeigt, kann also nur im Code verändert werden.

Mit der Eigenschaft PasswordChar können Sie die Eingabe mit einem Zeichen maskieren. Das ist bei Eingabefeldern interessant, die Passwörter entgegennehmen. Um zum Beispiel das häufig verwendete Zeichen »*« als Maskierung zu verwenden, sieht die Zuweisung, die natürlich auch im Eigenschaftsfenster der Textbox erfolgen kann, folgendermaßen aus:

textBox1.PasswordChar = "*"c

Mit CharacterCasing können Sie festlegen, ob bei der Eingabe die Groß- und Kleinschreibung beibehalten wird oder die eingegebenen Zeichen in Groß- oder Kleinbuchstaben konvertiert werden. Sie können die drei Werte Normal, Lower und Upper angeben.

Arbeiten mit ausgewähltem Text

In einem Textfeld kann die gesamte Zeichenfolge oder ein Teil von ihr markiert werden, beispielsweise um den markierten Text zu kopieren oder auszuschneiden. Dabei sind drei Eigenschaften eines TextBox-Objekts von Bedeutung: SelectionStart, SelectionLength und SelectedText. Sie sind in der Elternklasse TextBoxBase definiert.

Positionsangaben für die markierte Auswahl sind als Integer gespeichert.


Public Property SelectionStart As Integer 
Public Overridable Property SelectionLength As Integer

Nehmen wir an, es sei die Zeichenfolge »Visual Studio« in einer Textbox eingetragen und darin der Teilstring »sual« markiert. SelectionStart gibt uns dann die Zahl 2 zurück, da der markierte Teilstring nach dem zweiten Zeichen beginnt. Es muss aber nicht unbedingt ein Zeichen markiert sein, denn das Auswerten dieser Eigenschaft liefert grundsätzlich immer die Position der Einfügemarke zurück, wenn die Textbox fokussiert ist. SelectionStart ist keine schreibgeschützte Eigenschaft und kann daher auch zum Positionieren der Einfügemarke benutzt werden, solange die Eigenschaft SelectionLength, die die Anzahl der markierten Zeichen zurückgibt, den Wert 0 hat.

Wollen Sie programmgesteuert einen bestimmten Teil einer Zeichenfolge markieren, müssen Sie sowohl für SelectionStart als auch für SelectionLength Werte angeben. Die Eigenschaft SelectedText liefert schließlich den markierten Teilstring aus dem Steuerelement.

Im Beispiel SelectedText werden alle drei Eigenschaften exemplarisch eingesetzt. Abbildung 12.6 zeigt die grafische Benutzeroberfläche des Beispiels. Im obersten Eingabefeld wird nach dem Start eine Zeichenfolge angezeigt. Wird auf die Schaltfläche Text kopieren geklickt, wird der markierte Teilstring der oberen Textbox in die darunterliegende kopiert.

Abbildung 12.6 Eingabemaske des Beispiels »SelectedText«

Sehen wir uns nun den Programmcode an:


'...\WinControls\Selektionen\SelectedText.vb

Public Class SelectedText

  Private Sub Kopieren_Click(ByVal sender As Object, ByVal e As EventArgs) _ 
  Handles Kopieren.Click 
    MessageBox.Show("Start nach : " & Original.SelectionStart & _ 
      Environment.NewLine & "Anzahl Zeichen : " & Original.SelectionLength) 
    Kopie.Text = Original.SelectedText 
    Original.Focus() 
  End Sub

  Private Sub Markieren_Click(ByVal sender As Object, ByVal e As EventArgs) _ 
  Handles Markieren.Click 
    Original.SelectionStart = Convert.ToInt32(Start.Text) 
    Original.SelectionLength = Convert.ToInt32(Länge.Text) 
    Start.Text = "" 
    Länge.Text = "" 
    Markieren.Enabled = False 
    Original.Focus() 
  End Sub

  Private Sub Bereich(ByVal sender As Object, ByVal e As EventArgs) _ 
  Handles Start.TextChanged, Länge.TextChanged 
    Markieren.Enabled = Start.Text <> "" AndAlso Länge.Text <> "" 
  End Sub

End Class

Im Ereignishandler Kopieren() lassen wir uns zuerst in einer Meldungsbox die Startposition und die Länge des Teilstrings ausgeben, der in der obersten Textbox markiert ist. Erst danach kopiert der Handler den markierten Teil der Zeichenfolge mit

Kopie.Text = Original.SelectedText

in das zweite Eingabefeld.

Die Eigenschaft Enabled der Schaltfläche Text markieren ist im Eigenschaftsfenster auf False gesetzt. Wenn die Anwendung gestartet wird, ist diese Schaltfläche also deaktiviert. Es ist nur dann sinnvoll, sie zu aktivieren, wenn in den beiden Textboxen der GroupBox ein gültiger Wert enthalten ist. Dies kann nur passieren, wenn die Texte in den beiden Boxen geändert werden. Jede Textänderung löst das Ereignis TextChanged aus, sodass dessen Handler gut geeignet ist, um den Aktivierungszustand der Schaltfläche zu kontrollieren.

Da die Überprüfung in den TextChanged-Ereignissen der beiden Eingabefelder identisch ist, reicht ein Ereignishandler zur Behandlung beider Ereignisse aus. Er kann im Eigenschaftsfenster zugewiesen werden, wenn man sich in der rechten Spalte die Liste aller passenden Ereignisse anzeigen lässt. Der Ereignishandler im Beispiel heißt Bereich().

Jedes Mal, wenn sich der Inhalt einer der beiden Textboxen im Rahmen ändert, muss geprüft werden, ob in diesem Augenblick beide einen Inhalt aufweisen:

Markieren.Enabled = Start.Text <> "" AndAlso Länge.Text <> ""

Nur wenn beide Textboxen nicht leer sind, wird die Schaltfläche Text markieren aktiviert.

Im Ereignishandler des Click-Ereignisses der Schaltfläche Text markieren muss die Eingabe der Startposition und der Markierungslänge aus den Eingabefeldern zuerst in einen Integer konvertiert werden. Da sich der übliche Konvertierungsoperator dazu nicht eignet, greifen wir auf die Methode ToInt32 der Klasse Convert zurück. Beide Rückgabewerte werden der entsprechenden Eigenschaft des oberen Eingabefeldes zugewiesen. Anschließend werden die Inhalte der Textboxen im Rahmen geleert.

Zum Schluss dürfen wir eine wichtige Anweisung nicht vergessen: Solange die Textbox nicht den Fokus hat, werden wir auch keinen markierten Text sehen. Mit der Methode Focus() wird die Textbox fokussiert.

Prüfung auf Änderung einer Textbox

Als ausgesprochen nützlich kann sich die Eigenschaft Modified erweisen, die als boolescher Wert die Information darüber liefert, ob sich der Inhalt einer Textbox geändert hat. Ändert der Anwender durch eine Eingabe den Inhalt der Textbox, setzt die Textbox Modified von False auf True. Allerdings darf man auch nicht vergessen, die Eigenschaft nach der Verarbeitung der Änderung manuell wieder auf False zurückzusetzen, denn das passiert nicht automatisch.

Automatische Vervollständigung

Textboxen unterstützen Autovervollständigung. Dieses Feature unterstützt den Benutzer bei seinen Eingaben, indem es aus einer Liste den nächsten passenden Eintrag sucht und die Benutzereingabe nach rechts um einen Vorschlag erweitert.

Nur drei Eigenschaften bewirken die Autovervollständigung:

  • AutoCompleteCustomSource
  • AutoCompleteMode
  • AutoCompleteSource

Die Autovervollständigung setzt zunächst voraus, dass AutoCompleteMode auf einen Wert ungleich None gesetzt wird. Dazu stehen Ihnen die Konstanten der Enumeration AutoCompleteMode zur Verfügung, die Sie der Tabelle 12.5 entnehmen können.


Tabelle 12.5 Die Enumeration »AutoCompleteMode«

Konstante Beschreibung

Append

Ergänzt die aktuelle Benutzereingabe mit dem ersten Listeneintrag, der genauso beginnt und markiert die angehängte Zeichenfolge.

None

Autovervollständigung ist abgeschaltet (Standardeinstellung).

Suggest

Öffnet eine Liste aller passenden Kandidaten, aus der der Benutzer mit den Pfeiltasten einen Eintrag auswählen kann.

SuggestAppend

Ergänzt die aktuelle Benutzereingabe und öffnet die Vorschlagsliste.


Abbildung 12.7 zeigt die Unterschiede zwischen den drei Konstanten zur Laufzeit.

Abbildung 12.7 Darstellung der Autovervollständigung, abhängig von der Einstellung »AutoCompleteMode«

Es stellt sich die Frage, aus welcher Liste die Informationen zur Vervollständigung oder Auswahl bezogen werden. Die Quelle wird in der Eigenschaft AutoCompleteSource spezifiziert, deren Typ die gleichnamigen Enumeration ist. Je nachdem, was im Eingabefeld eingetragen werden soll, können Sie auf verschiedene interne Systemlisten zurückgreifen, beispielsweise auf HistoryList, Filesystem oder AllUrl.

Eine weitere Möglichkeit ist die Einstellung CustomSource, um eine eigene Liste zur Verfügung zu stellen. Diese kann bereits zur Entwicklungszeit gefüllt werden, aber auch dynamisch zur Laufzeit. Die selbst definierte Liste wird durch die dritte Eigenschaft im Bunde, AutoCompleteCustomSource, beschrieben. Im Eigenschaftsfenster brauchen Sie nur auf die Schaltfläche in der Wertespalte zu klicken, um in dem sich daraufhin öffnenden Dialog die Listenelemente einzutragen:

Abbildung 12.8 Benutzerdefinierte Liste für die Autovervollständigung

AutoCompleteCustomSource liefert die Referenz auf eine Collection vom Typ AutoCompleteStringCollection. Wollen Sie die Liste zur Laufzeit füllen oder bestehende Einträge ergänzen, stehen Ihnen die üblichen Methoden Add und AddRange nebst allen anderen Methoden zur vollständigen Verwaltung der gesamten Auflistung zur Verfügung (Remove, Insert usw.).

Methoden eines einzeiligen Textfeldes

Eine Reihe von Methoden erleichtert und unterstützt die Programmierung von Textboxen. Dazu gehört die Methode Select, mit der wir Text im Steuerelement markieren können.


Public Sub [Select](start As Integer, length As Integer)

Der erste Parameter legt die Position des ersten Zeichens in der aktuellen Textmarkierung des Textfeldes fest, der zweite die Anzahl der zu markierenden Zeichen. Sie ist äquivalent zur Zuweisung der beiden Eigenschaften SelectionStart und SelectionLength.

Die Methode SelectAll markiert den gesamten Text im Textfeld:


Public Sub SelectAll()

Soll der gesamte Inhalt einer Textbox beim Erhalt des Fokus markiert werden, rufen Sie die Methode SelectAll im Enter-Ereignis der Textbox auf:

Private Sub textBox1_Enter(sender As object, e As EventArgs) 
  textBox1.SelectAll() 
End Sub

Mit der Methode Clear weisen Sie der Text-Eigenschaft eine leere Zeichenfolge zu.

Um den Inhalt einer Textbox zu ergänzen, werden Sie vermutlich meistens eine Anweisung ähnlich der folgenden programmieren:

textBox1.Text += " weiterer Text."

Die Methode AppendText bietet dazu eine Alternative an:


Public Sub AppendText([text] As String)

Beispiel:

textBox1.AppendText(" weiterer Text.")

Das TextBox-Steuerelement kann in gewohnter Weise die Zwischenablage nutzen. Sie müssen dazu nur den Mauszeiger auf markierten Text positionieren und mit der rechten Maustaste das Kontextmenü öffnen. Zum Ausschneiden, Kopieren, Einfügen und Löschen stehen dem Anwender die üblichen Funktionalitäten zur Verfügung, ohne dass Sie dazu auch nur eine Zeile Code schreiben müssen. Alternativ kann der Anwender auch mit den Tastenkombinationen Taste Strg + Taste X den markierten Text löschen, mit Taste Strg + Taste C den markierten Text in die Zwischenablage kopieren oder mit Taste Strg + Taste V den Inhalt der Zwischenablage an der Position der Einfügemarke einfügen.

Mit den Methoden Cut, Copy und Paste der Textbox können Sie auch direkt im Programmcode mit der Zwischenablage zusammenarbeiten. Mit Cut() wird der markierte Text ausgeschnitten und in die Zwischenablage geschoben. Dabei muss Text im Eingabefeld markiert sein. Sehr ähnlich arbeitet die Methode Copy(), jedoch ohne dabei gleichzeitig den markierten Text zu entfernen. Soll der Inhalt der Zwischenablage an der Position der Einfügemarke in die Textbox eingefügt werden, müssen Sie die Methode Paste() aufrufen. Um die jeweils letzte Operation rückgängig zu machen, rufen Sie Undo auf. Alle Methoden sind parameterlos und haben keinen Rückgabewert.


Rheinwerk Computing - Zum Seitenanfang

12.6.2 Mehrzeilige Eingabefelder topZur vorigen Überschrift

Aus einem einzeiligen ein mehrzeiliges Textfeld zu machen, ist sehr einfach: Sie müssen nur die Eigenschaft MultiLine=True setzen. Danach lässt sich auch die Höhe der Textbox beliebig festlegen, denn die Eigenschaft AutoSize verliert damit selbst dann ihre Wirkung, wenn sie weiterhin auf True gesetzt ist.

Das Ergebnis wird allerdings noch nicht alle Ansprüche befriedigen können. Gibt der Anwender einen Text ein, der breiter als die Textbox ist, wird dieser in der nächsten Zeile fortgesetzt. Überschreitet der Text die Höhe der Textbox, verlässt der zuerst eingegebene Text den oberen Teil des Anzeigefensters. Nur mit den Pfeiltasten lässt sich dann zur Laufzeit wieder zum Textanfang navigieren. Viel komfortabler sind Bildlaufleisten, die über die Eigenschaft ScrollBars vom Typ der gleichnamigen Enumeration angeschaltet werden (siehe Tabelle 12.6).


Tabelle 12.6 Die Enumeration »ScrollBars«

Konstante Beschreibung

None

Es werden keine Bildlaufleisten angezeigt.

Horizontal

Nur eine horizontale Bildlaufleiste wird angezeigt.

Vertical

Nur eine vertikale Bildlaufleiste wird angezeigt.

Both

Beide Bildlaufleisten, horizontal und vertikal, werden angezeigt.


Wenn Sie der Eigenschaft ScrollBars eines mehrzeiligen Eingabefelds die Einstellung Both oder Horizontal zuweisen, wird trotzdem keine horizontale Bildlaufleiste angezeigt. Verantwortlich dafür ist die Eigenschaft WordWrap, die auf True voreingestellt ist. Sie bewirkt, dass der eingegebene Text automatisch umbrochen wird, wenn die Textbreite die Breite der Textbox überschreitet. Hat WordWrap den Wert False, wird zuerst eine deaktivierte horizontale Bildlaufleiste angezeigt, die erst aktiviert wird, wenn zur Laufzeit die Notwendigkeit dazu besteht. Die Einstellung bewirkt zudem, dass der Anwender so lange Text in eine Zeile schreiben kann, bis er mit der Taste Enter -Taste einen Zeilenumbruch erzwingt.

Oft möchte man die einzelnen Zeilen eines Textfeldes getrennt auslesen. Dazu müssen Sie nicht den gesamten Inhalt einer Textbox nach den Zeilenumbrüchen durchsuchen, denn die Eigenschaft Lines speichert die Zeilen in einem String-Array. Der Text bis zum ersten Zeilen-umbruch hat den Index 0, der bis zum zweiten Zeilenumbruch den Index 1 usw. Beispielsweise liefert die Anweisung

Dim str As String = textBox1.Lines(2)

den Inhalt der dritten Zeile, vorausgesetzt, in der Textbox ist eine solche enthalten. Ansonsten wird eine Ausnahme ausgelöst. Daher empfiehlt es sich, vor dem Zugriff mit der Eigenschaft Length die Gesamtanzahl der Elemente im Array zu prüfen, zum Beispiel so:

If textBox1.Lines.Length > 2 Then str = textBox1.Lines(2)

Sie können über die Eigenschaft Lines einem Eingabefeld auch einen Inhalt zuweisen. Übergeben Sie dazu ein Array mit dem gewünschten Text. Jedes Array-Element wird dann in einer eigenen Zeile angezeigt:

Dim stadt As String = "München" 
Dim stra As string() = New String(){"Berlin","Hamburg", stadt} 
textBox1.Lines = str

Wollen Sie einer mehrzeiligen Textbox mehrere Zeilen übergeben, müssen Sie nicht die Lines-Eigenschaft benutzen, sondern können der Eigenschaft Text eine Zeichenkette mit Zeilenvorschüben zuweisen:

Dim str As String = "Berlin" & vbNewLine & "Hamburg" & vbNewLine & "München" 
textBox1.Text = str

Mehrzeilige Textfelder und die Tastatur

In Forms haben die Taste Tabulator - und die Taste Enter -Taste eine besondere Bedeutung: Mit der Taste Tabulator -Taste bewegt man den Fokus von einem fokussierbaren Steuerelement zum nächsten, und mit der Eingabetaste wird üblicherweise die OK-Schaltfläche aktiviert sowie der Ereignishandler ausgeführt, der mit dem Click-Ereignis verknüpft ist. Während der Fokuswechsel mit der Taste Tabulator -Taste das Standardverhalten einer Form ist, wird mit der Eigenschaft AcceptButton der Form eine Schaltfläche (meist die OK-Schaltfläche) zur Standardfläche der Eingabetaste gemacht.

Bei mehrzeiligen Textfeldern ist häufig ein anderes Verhalten dieser beiden Tasten wünschenswert. Der Anwender erwartet, dass mit der Eingabetaste ein Zeilenumbruch und mit der Tabulatortaste ein Tabstopp-Zeichen in das Steuerelement eingefügt wird. Damit die beiden Tasten diesen Erwartungen entsprechen, müssen zwei Eigenschaften des TextBox-Objekts auf True gesetzt werden: AcceptsReturn und AcceptsTab. Um mit der Einstellung AcceptsTab=True den Fokus zum nächsten Steuerelement zu verschieben, muss der Anwender nun allerdings die Tastenkombination Taste Strg + Taste Tabulator betätigen.

Enthält das Formular keine Schaltfläche, die mit der Eigenschaft AcceptButton der Form zur Standardschaltfläche des Formulars wird, wirkt sich das Drücken der Eingabetaste unabhängig von der Einstellung der Eigenschaft AcceptsReturn immer als Zeilenumbruch aus.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual Basic 2008
Visual Basic 2008
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern