Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB4, VB5, VB6 | 23.11.01 |
MultiLine-TextBox zeilenweise in Liste übertragen Ein Beispiel, das zeigt, wie sich die einzelnen Zeilen einer MultiLine-TextBox zeilenweise in eine ListBox übertragen lassen. | ||
Autor: Dieter Otter | Bewertung: | Views: 19.730 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das nachfolgende Beispiel zeigt, wie sich die einzelnen Zeilen einer MultiLine-TextBox zeilenweise in eine ListBox übertragen lassen. Hierbei soll es also keine Rolle spielen, ob die Zeilen automatisch beim Erreichen des rechtes Randes umgebrochen wurde oder die "Enter"-Taste für den Umbruch verwendet wurde.
Die Zeilen werden also exakt so, wie sie auch in der TextBox angezeigt werden, in eine ListBox übertragen.
' zunächst die benötigten API-Deklarationen Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long Private Const EM_GETLINE = &HC4 Private Const EM_GETLINECOUNT = &HBA
' Inhalt einer MultiLine-TextBox zeilenweise ' in eine ListBox übertragen Public Sub Text2List(TextBox As TextBox, _ ListBox As ListBox) Dim I As Long Dim lngLineCount As Long Dim lngLineLength As Long Dim strLine As String ' Liste löschen ListBox.Clear ' zunächst die Anzahl der Zeilen ermitteln lngLineCount = SendMessage(TextBox.hwnd, _ EM_GETLINECOUNT, 0, 0&) ' jetzt die einzelnen Zeilen ermitteln For I = 0 To lngLineCount - 1 strLine = Space$(1024) lngLineLength = SendMessage(TextBox.hwnd, _ EM_GETLINE, I, strLine) ' Zeile der ListBox hinzufügen ListBox.AddItem Left$(strLine, lngLineLength) Next I End Sub
Um das Beispiel auszuprobieren, erstellen Sie ein neues Projekt und fügen der Form1 eine TextBox mit der Eigenschaft MultiLine = True und ScrollBars = 2 - Vertikal hinzu. Daneben plazieren Sie ein ListBox-Steuerelement und irgendwo darunter einen CommandButton. Fügen Sie nun den obigen Code in den Code-Teil der Form ein. Beim Klicken auf die Schaltfläche soll der Inhalt der TextBox dann zeilenweise in die ListBox übertragen werden, also:
Private Sub Command1_Click() Text2List Text1, List1 End Sub