Label to Listbox

PH234X

Mitglied
Ich schon wider xD
Sry, aber ich hab in :google: nichts gefunden...

Ich hab ne Label. Textinhalt ist zB so:

Text
Text
Text

und ne Listbox

Wie krieg ich die
Text
Text
Text
In die Listbox
Hat jemand ne Idee?
 
Klappt, aber nur eine Zeile...
Also alles in eine Zeile gepresst...

TextTextTextText
Und das dann noch so überlagert
 
Hallo!

Du könnstest den Text im Label "splitten" und dann als Array einlesen.
Code:
        Dim s() As String = Label.Text.Split(vbNewLine)
        ListBox.Items.AddRange(s)

Um den lästigen "Rest" des Umbruchs zu vermeiden könntest du das Carr.Ret.LineFeed durch ein eigenes Zeichen ersetzen:
Code:
Label.Text = Label.Text.Replace(vbNewLine, "#")

Jetzt muss der Split natürlich noch an das Zeichen angepasst werden.

(Man möge mir eine elegante Lösung mitteilen und ich entferne dieses schändliche Stück Code...)
codeman
 
Zuletzt bearbeitet:
Hallo,

man könnte das auch mit einem StringReader machen:
Visual Basic:
Dim strLine As String
Dim oReader As New StringReader(myLabel.Text)

While (InlineAssignHelper(strLine, oReader.ReadLine())) IsNot Nothing
     myListBox.Items.Add(strLine)
End While
Gruß
MCoder
 
Hallo!

Du könnstest den Text im Label "splitten" und dann als Array einlesen.
Code:
        Dim s() As String = Label.Text.Split(vbNewLine)
        ListBox.Items.AddRange(s)

Um den lästigen "Rest" des Umbruchs zu vermeiden könntest du das Carr.Ret.LineFeed durch ein eigenes Zeichen ersetzen:
Code:
Label.Text = Label.Text.Replace(vbNewLine, "#")

Jetzt muss der Split natürlich noch an das Zeichen angepasst werden.

(Man möge mir eine elegante Lösung mitteilen und ich entferne dieses schändliche Stück Code...)
codeman

Klappt, nur da steht dann immer nenn Komisches Zeichen...
Warscheinlich meinst du damit den Lästigen "Rest"

Aber dein Code klappt da nicht...

Bei dir MCoder findet der "InlineAssignHelper" nicht...
 
Du musst den Code so anpassen:
Code:
Label.Text = Label.Text.Replace(vbNewLine, "#")
Dim s() As String = Label.Text.Split("#")  ' Mit dem ersetzten Zeichen "splitten"!
ListBox.Items.AddRange(s)

Wie gesagt, sicher nicht sehr elegant die Lösung; aber sie funktioniert!
codeman
 
Du musst den Code so anpassen:
Code:
Label.Text = Label.Text.Replace(vbNewLine, "#")
Dim s() As String = Label.Text.Split("#")  ' Mit dem ersetzten Zeichen "splitten"!
ListBox.Items.AddRange(s)

Wie gesagt, sicher nicht sehr elegant die Lösung; aber sie funktioniert!
codeman

Viiielen Dank!!
Klappt super!

EDIT///
Hab noch 1 Problem:
Da steht dann

Text
Text
Text
Aber dann noch eine Zeile...
Also:

"
Text
Text
Text

"

Wie kriegich die weg?
 
Zuletzt bearbeitet:
Bei dir MCoder findet der "InlineAssignHelper" nicht...
Sorry, die Funktion ist beim automatischen Umwandeln von C# nach VB entstanden und ich habe sie vergessen zu posten :eek:

Diese Variante sollte aber funktionieren, ist aber leider nicht mehr so schön kurz wie bei C#:
Visual Basic:
Dim strLine As String
Dim oReader As New StringReader(myLabel.Text)

While True
    strLine = oReader.ReadLine()
    If strLine Is Nothing Then
        Exit While
    Else
        myListBox.Items.Add(strLine)
    End If
End While
Gruß
MCoder
 

Neue Beiträge

Zurück