7

Mam aplikację Windows Phone. W aplikacji mam pole tekstowe, którego właściwość acceptsreturn ma wartość true.Wymiana NewLine C#?

Co chcę zrobić, to stworzyć ciąg znaków z pola tekstowego i zastąpić nowe linie o szczególnym charakterze, coś "NL"

Próbowałem następujących, ale żaden z nich nie pracował.

string myString = myTextBox.Text.Replace(Environment.NewLine,"NL"); 
string myString = myTextBox.Text.Replace("\n","NL"); 
+1

Czy jesteś pewien, że to znak nowej linii jesteś po, a nie 'przewóz return' - \ r? Czy 'string myString = myTextBox.Text.Replace (" \ r "," NL ");' działa? Environment.NewLine jest zwykle '\ r \ n' na Windowsie, więc próbujesz \ n i \ r \ n! – dash

+0

Dlaczego to nie działa? Czy był wyjątek? Czy też dane wyjściowe nie zostały sformatowane zgodnie z oczekiwaniami? – psubsee2003

+0

cóż, nie spowodowało to wyjątku, po prostu nie działało. nowa linia nie została zastąpiona – user1924391

Odpowiedz

8

nie jestem zaznajomiony z Windows Phone (lub Silverlight), ale starają się podzielić z \r zamiast:

string myString = myTextBox.Text.Replace("\r","NL"); 

Why does a Silverlight TextBox use \r for a newline instead of Environment.Newline (\r\n)?

+0

Tak, to była przecież odpowiedź! Dzięki! – user1924391

+0

Czy jest to sklasyfikowane jako duplikat? Czy Windows Phone skutecznie silverlight? –

+1

@DavidHughes: Tak http://stackoverflow.com/a/9390151/284240 –

3

rozważyć zastąpienie różnych typów linii łamie obsłużyć wszystkich możliwości

string myString myTextBox.Replace("\r\n", "NL").Replace("\n", "NL").Replace("\r", "NL"); 
1

Użyj tego kodu e

var myString = myTextBox.Text.Replace("\r","NL"); 

Jest to zgodne z każdym systemem operacyjnym.

+0

Dziękuję, proszę pana! w końcu to była odpowiedź – user1924391

1

question o podobnym temacie miał dość elegancki answer można rozważyć interesujący używać:

using System.Text.RegularExpressions; 

myTextBox.Text = Regex.Replace(myTextBox.Text, @"\r(?!\n)|(?<!\r)\n", "NL");