【问题标题】:New lines dissapear when reading .txt from Android从 Android 读取 .text 时新行消失
【发布时间】:2013-03-19 22:00:33
【问题描述】:

这样做

String t = "asd\nasd";

TextBox objTxt = (TextBox)messageBox;
bjTxt.Text = t;

不显示

asd    
asd

正如预期的那样,它显示了

asdasd

为什么,它让我发疯。 TextBox 设置为多行,我可以手动在其中写行。谢谢!

【问题讨论】:

  • 你试过用Environment.NewLine代替\n吗?
  • 谢谢,它有效。我需要这样做仍然有点糟糕。我实际上是在使用 ReadToEnd() 读取文件,现在我需要逐行读取并在每行末尾使用 Environment.NewLine。

标签: c# string textbox multiline


【解决方案1】:

TextBox 不像 LabelMessageBox 忽略 "\n" 所以如果你想进入换行符,你需要使用 "\r\n" 组合。不过有更好的解决方案,只需使用Environment.NewLine,您就无需考虑 \r\n 组合换行。

要么:

String t = "asd\r\nasd";

或者:

String t = "asd" + Environment.NewLine + "asd";

Environment.NewLine 的美妙之处在于,在您正在开发的任何环境中都无需担心换行符(或者至少应该是这样)。

编辑:

我看到了你的评论,所以我会补充几句。您仍然可以使用ReadToEnd(),并且如果文本仅包含“\n”作为换行符,您可以执行以下操作:

t = t.Replace("\n", "\r\n");

或者:

t = t.Replace("\n", Environment.NewLine);

因为Environment.NewLine本质上是string

【讨论】:

    【解决方案2】:

    尝试使用TextBoxLines 属性来分配文件中的所有行:

    textBox.Lines = File.ReadAllLines(fileName);
    

    而且,正如我在上面的评论中所说,对于您的示例,您应该使用 Environment.NewLine 让新行出现在 TextBox 中:

    textBox.Text = "asd" + Environment.NewLine + "asd";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      相关资源
      最近更新 更多