2014-03-19 76 views
0

我有一个接受多行的文本框。我必须从中读取文本并将其发送到服务器。从单行windows phone/c中的文本框中检索文本#

挑战是当我发送字符串时,它应该有'\ n'而不是实际的换行符。即如果输入如下。

First Line 
Second Line 

我应该把它发送到服务器

“行头\ n第二行”

我认为我应该送点什么样

“第一Line \\ nSecond Line“

但我无法找到'\ n'字符来替换它。

private string addReturns(string content) 
    { 
     char[] modified = new char[content.Length * 2 + 2]; 
     int j = 0; 
     for (int i = 0; i < content.Length; i++) 
     { 
      if (content[i] == '\n') 
      { 
       MessageBox.Show("Found return"); 
       modified[j++] = '\\'; 
       modified[j++] = 'n'; 
      } 
      else 
      { 
       modified[j++] = content[i]; 
      } 
     } 
     modified[j] = '\0'; 
     content = new string(modified); 
     MessageBox.Show(content); 
     return content; 
    } 

显示“找到返回”的MessageBox根本没有到达。

请帮我怎么做到这一点。

谢谢。

回答

0

如果我理解正确,您想用\\n替换换行符。如果是这样,您可以:

private string addReturns(string content) 
{ 
    return content.Replace(Environment.NewLine, "\\n"); 
} 

请注意您使用的技术可能会导致问题。如果用户想要添加文字I like having double slash and n like \\n this怎么办?你如何解释这在服务器端?

+0

第一。这不起作用。我得到了同样的结果。它没有被替换。 – Presse

+0

如果我是正确的..如果你所提出的代码应该工作我的也应该工作。所以我猜想问题在于,当作为字符串读取时,文本框并不返回'\ n'。既不Environment.NewLine。 – Presse

0

确保您已在文本框中设置这些属性,

AcceptsReturn = '真' TextWrapping = “包装”

这将工作,

所有的
string a = textBox1.Text; 
    string[] delimiter = { Environment.NewLine }; 
    string[] b = a.Split(delimiter, StringSplitOptions.None); 
    string s = string.Join(",", b); 
    string r = s.Replace("\r", "\n"); 
+0

它仍然无法正常工作。同样的事情。该字符串既没有Environment.NewLine也没有'\ n'。 – Presse

+0

好的,你有没有在你的文本框中设置这些属性? AcceptsReturn = true;和TextWrapping = Wrap; – Sajeetharan

+0

雅我设置了两个属性..其实我已经设置了它们。 – Presse

相关问题