Discussion:
TextBox und vbLf
(zu alt für eine Antwort)
Stefan Donath
2005-03-30 11:38:00 UTC
Permalink
Hallo,

ich habe da eine mehrzeilige Textbox, der ich per Code eine Text der Art
"TextTextText" & vbLf & "nochmehrText" übergebe.

Leider wird das vbLf nicht als Zeilenumbruch, sondern als kleines
Quadrat angezeigt.

Nehm ich ein Label anstelle der Textbox, funktiert's. Aber beim Label
gibts keine ScrollBars, was bei längerem Text auch häßlich aussieht! Und
schwer leserlich wird...

Was kann ich tun??
Stefan.
Herfried K. Wagner [MVP]
2005-03-30 12:13:08 UTC
Permalink
Hallo Stefan!
Post by Stefan Donath
ich habe da eine mehrzeilige Textbox, der ich per Code eine Text der Art
"TextTextText" & vbLf & "nochmehrText" übergebe.
Leider wird das vbLf nicht als Zeilenumbruch, sondern als kleines Quadrat
angezeigt.
Nehm ich ein Label anstelle der Textbox, funktiert's. Aber beim Label
gibts keine ScrollBars, was bei längerem Text auch häßlich aussieht! Und
schwer leserlich wird...
Benutze 'ControlChars.NewLine' (oder 'Environment.NewLine') als
Zeilenseparator.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Peter Götz
2005-03-30 12:42:57 UTC
Permalink
Hallo Herfried,
Post by Herfried K. Wagner [MVP]
Benutze 'ControlChars.NewLine' (oder 'Environment.NewLine') als
Zeilenseparator.
ControlChars.NewLine wird ohne Textbox.Multiline = True ebensowenig den
gewünschten Zeilenumbruch erzeugen. Das vbCrLf in

TextBox.Multiline = True
TextBox.Text "Hallo" & vbCrLf & "Welt"

führt auch zum Ziel.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)
Herfried K. Wagner [MVP]
2005-03-30 13:15:09 UTC
Permalink
Hallo Peter!
Post by Peter Götz
Post by Herfried K. Wagner [MVP]
Benutze 'ControlChars.NewLine' (oder 'Environment.NewLine') als
Zeilenseparator.
ControlChars.NewLine wird ohne Textbox.Multiline = True ebensowenig den
gewünschten Zeilenumbruch erzeugen. Das vbCrLf in
TextBox.Multiline = True
TextBox.Text "Hallo" & vbCrLf & "Welt"
führt auch zum Ziel.
Wenn du noch ein '=' vor dem "Hallo" einfügst, führt's tatsächlich zum Ziel
;-).

Natürlich kann man 'vbCrLf' verwenden. Dennoch bevorzuge ich das
"abstraktere" 'NewLine'/'vbNewLine', da sich dessen Wert je nach
Betriebssystem (Mac OS, Linux usw.) (theoretisch) unterscheiden könnte.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Stefan Donath
2005-03-30 12:33:31 UTC
Permalink
Besten Dank für den Tipp!

Stefan.
Post by Herfried K. Wagner [MVP]
Hallo Stefan!
Post by Stefan Donath
ich habe da eine mehrzeilige Textbox, der ich per Code eine Text der
Art "TextTextText" & vbLf & "nochmehrText" übergebe.
Leider wird das vbLf nicht als Zeilenumbruch, sondern als kleines
Quadrat angezeigt.
Nehm ich ein Label anstelle der Textbox, funktiert's. Aber beim Label
gibts keine ScrollBars, was bei längerem Text auch häßlich aussieht!
Und schwer leserlich wird...
Benutze 'ControlChars.NewLine' (oder 'Environment.NewLine') als
Zeilenseparator.
Peter Götz
2005-03-30 12:38:23 UTC
Permalink
Hallo Stefan,
Post by Stefan Donath
ich habe da eine mehrzeilige Textbox, der ich per Code eine Text der Art
"TextTextText" & vbLf & "nochmehrText" übergebe.
Leider wird das vbLf nicht als Zeilenumbruch, sondern als kleines
Quadrat angezeigt.
Text1.Multiline = True
Text1.Text = "TextTextText" & ControlChars.CrLf & "nochmehrText"

Sollte Dein Problem beheben.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)
Dirk S
2005-03-30 17:37:23 UTC
Permalink
Hallo, probier es mal mit " + vbCrLf + ".
Dirk
Herfried K. Wagner [MVP]
2005-03-30 20:07:34 UTC
Permalink
Hallo Dirk!
Post by Dirk S
Hallo, probier es mal mit " + vbCrLf + ".
Zur Zeichenfolgenverkettung ist in VB.NET der '&'-Operator dem Operator '+'
vorzuziehen.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Volker Biedermann
2005-03-31 07:45:03 UTC
Permalink
Hallo Herfried,
Post by Herfried K. Wagner [MVP]
Zur Zeichenfolgenverkettung ist in VB.NET der '&'-Operator dem Operator
'+' vorzuziehen.
Aber + funktioniert (auch mit Option Strict On). Gibt es einen speziellen
(oder auch nicht so speziellen) Grund für diesen Vorzug?

Fragt sich
Volker
Thorsten Dörfler
2005-03-31 09:30:29 UTC
Permalink
Post by Volker Biedermann
Post by Herfried K. Wagner [MVP]
Zur Zeichenfolgenverkettung ist in VB.NET der '&'-Operator dem Operator
'+' vorzuziehen.
Aber + funktioniert (auch mit Option Strict On). Gibt es einen speziellen
(oder auch nicht so speziellen) Grund für diesen Vorzug?
Option Strict Off

Dim s As String
s = "123" + 456
Debug.WriteLine(s)
=> 579

s = "123" & 456
Debug.WriteLine(s)
123456

Mit Option Strict kann das zwar vermieden werden, aber warum den +
Operator missbrauchen, der mit mathematischen Aufgaben assoziiert ist,
statt den speziell dafür vorgesehenen &-Operator? Wie es auch in der
Dokumentation sinngemäß lautet:

"When you use the + operator, you may not be able to determine whether
addition or string concatenation will occur. Use the & operator for
concatenation to eliminate ambiguity and provide self-documenting code."

Ansonsten gibt es keine Gründe, nicht auch den +-Operator zu
verwenden. Der Compiler ist intelligent genug das zu erkennen und
produziert den passenden IL-Code.

Thorsten Dörfler
--
vb-hellfire - einfach anders
http://www.vb-hellfire.de/
Loading...