为什么/ n在Multiline和AcceptsReturn设置为True的TextBox上不起作用

时间:2014-07-23 04:55:02

标签: c# visual-studio-2012

我一直试图在带有Multiline的TextBox中使用\ n,并且AcceptsReturn设置为true。我环顾四周,尝试了\ r \ n(没有任何更好的结果),还创建了一个String来托管" Environment.NewLine"称为CRLF,但这种做法似乎过分了。我已经在Stackoverflow上检查了MSDN和多个条目,但我发现空白了。我觉得有趣的是,当我将所述输出粘贴到任何其他来源时,文本输出仍包含新行。我的输出窗口使用Console.Write()以及我的CRLF条目顺利运行。

以下是代码的副本:

public partial class Form1 : Form
    {
        private String CRLF = Environment.NewLine;
        private String test = "";
        public Form1()
        {
            InitializeComponent();

        }

        private void btnNewManifest_Click(object sender, EventArgs e)
        {
            test = "Hello World 1\nHello World 2" + CRLF + "Hola!";
            txtOutput.Text = test;
            Console.WriteLine(test);
        }
    } 

1 个答案:

答案 0 :(得分:1)

您需要对Windows使用\r\n,但我仍然建议使用Environment.NewLine,因为这会使您的代码在所有平台上正常运行。

以下代码在Windows上正常运行:

public partial class Form1 : Form
{
    public TextBox txtOutput = new TextBox();

    public Form1()
    {
        InitializeComponent();

        this.txtOutput.Width = 200;
        this.txtOutput.Height = 100;
        this.txtOutput.Multiline = true;
        this.Controls.Add(this.txtOutput);

        this.txtOutput.Text = "My test\r\nNext line";
    }
}

使用此代码并将其与您必须尝试的文本框进行比较,并找出其他内容。我认为幕后会发生其他事情。

顺便说一下,你可以做这样的事情(对我有用),但我不确定它是否适用于其他系统:

this.txtOutput.Text = 
@"Line one
Line two
Line three";