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 |