2009-08-19 7 views
4

Ich verwende eine Rich TextBox in VB.NET und an einen StringBuilder übergeben. Ich muss das New Line-Zeichen von der TextBox mit einem Leerzeichen oder einem Komma ersetzen. Problem ist, dass die Standardcodes für die neue Zeile in diesem Fall anscheinend nicht das Zeichen Neue Zeile übernehmen. Gibt es ein bestimmtes Zeichen, das in Rich TextBoxen als neue Zeile verwendet wird? Jede Hilfe oder Vorschläge werden geschätzt.VB.NET Rich TextBox Newline Zeichen entfernen

Antwort

6

folgt ich in der Lage war, es herauszufinden. Sie müssen ControlChars.Lf verwenden, damit der Code den folgenden Zeilen entspricht:

RichTextBox1.Text = RichTextBox1.Text.Replace(ControlChars.Lf, ",") 
+1

Ah ja, ControlCharacters. Das habe ich völlig vergessen, da ich seit einiger Zeit fast ausschließlich in C# arbeite. Freut mich, dass du es gelöst hast! – Anders

+0

Übrigens, ControlChars.Lf ist äquivalent zu Chr (10), wie ezwi und ich bereits erwähnt :) – Anders

+1

Wieder ist dies jedoch eine VB-spezifische Funktion. Warum nicht Environment.Newline verwenden, damit es sprachunabhängig ist? –

4

Sie können versuchen Environment.NewLine als sprachunabhängige Konstante für eine echte Newline (Sie sollten versuchen, sprachspezifische Konstanten und Funktionen zu vermeiden, wenn möglich).

RichTextBox1.Text = RichTextBox1.Text.Replace(Environment.NewLine, ",") 
0

Manchmal ist es nur chr(10) oder chr(13). VbCrLf ist eine Kombination von und chr(13).

Versuchen Sie, das eine oder andere zu analysieren, und sehen Sie, ob das hilft.

1

Sie könnten die Eigenschaft Linien der RichTextBox verwenden. Sie könnten dann Ihr Komma einfügen oder aber Sie sind begrenzt, wie

Dim sb As New StringBuilder(String.Join(",", Me.richTextBox1.Lines)) 
1
Dim linesJoined As String = String.Join(",", Me.RichTextBox1.Lines)