Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB2005, VB2008 | 13.12.10 |
AutoScroll in der TextBox Dieser Code bewirkt das automatische Scrollen der TextBox zur letzten Textzeile, sobald der Inhalt der TextBox verändert wurde. | ||
Autor: Dieter Otter | Bewertung: | Views: 15.261 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Hin und wieder verwendet man in seiner Anwendung eine Multiline-TextBox, die als "Status-Ausgabe" dient, d.h. in der TextBox werden bestimmte Abläufe protokolliert und angezeigt. Wenn der TextBox ein neuer Status-Eintrag hinzugefügt wird, macht es Sinn, dass dieser auch sofort sichtbar angezeigt wird. Hierzu muss die TextBox also an das Ende des Textes gescrollt werden.
Und genau das macht nachfolgender Code: Wann immer sich der Inhalt der TextBox ändert, wird sichergestellt, dass immer zum Ende des Textes gescrollt wird.
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles TextBox1.TextChanged With TextBox1 ' ans Ende des Textes scrollen .SelectionStart = .TextLength End With End Sub
Beispiel:
Platzieren Sie auf die Form einen Button, sowie ein TextBox-Control und setzen die Eigenschaften MultiLine und ReadOnly auf den Wert True.
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Static nLine As Integer = 0 nLine += 1 TextBox1.AppendText("Statusinfo - Zeile " & CStr(nLine) & vbCrLf) End Sub
Wann immer Sie auf den Button klicken, wird der TextBox eine neue "Statuszeile" hinzugefügt und autom. an das Ende der TextBox gescrollt, so dass der neue Statuseintrag sofort sichtbar ist.