vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB4, VB5, VB623.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 OtterBewertung:  Views:  19.730 
www.tools4vb.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.