如何在多行文本框中添加文本?

12
我必须将文件的详细信息添加到多行文本框中,但所有详细信息都被添加到文本框的单行中,而不是垂直排列。我使用了Environment.NewLine和"\r\n",但没有帮助。我已经在Windows表单中选中了多行文本框并将其设置为true,但仍然无效。
我的代码行如下所示:
m_Txt.Multiline = true;

m_Txt.Text = fileInfo.m_Title + "\r\n" + 
             fileInfo.m_Identifier + Environment.NewLine + 
             fileInfo.m_TotalTime;
5个回答

18

更简洁的答案是:

假设txtStatus是一个文本框:

txtStatus.Multiline = True;
txtStatus.Clear();
txtStatus.Text += "Line 1" + Environment.NewLine;
txtStatus.Text += "Line 2" + Environment.NewLine;

使用内置枚举可以使代码更加清晰简洁。


在一个win7的c#应用程序中,没有AppendText。所以我不得不使用+=操作符。对于换行,我使用了"\r\n"。效果很好,在一个小的多行文本框中有50行文本。可以通过滚动条查看所有文本。 - drlolly

12

Shift+Enter

In the Visual Studio resource editor, you can hit "Shift + Enter" 
to create a new line, as doing something like "\r\n" will get escaped 
out.  You will also need to increase the cell height to see both 
lines as it does not auto-size.

这真的回答了问题吗?这个答案不是关于设计时的某些东西,而是关于问题运行时的东西吗? - Peter Mortensen

2
如果您正在以编程方式进行操作,请将新行附加到m_Txt.Lines,该变量是一个字符串数组。
m_Txt.Lines = new string[]{ fileInfo.m_Title, fileInfo.m_Identifier, fileInfo.m_TotalTime};

1

我刚刚写了这段代码,似乎运行良好。

public void setComments(String comments)
        {
            String[] aux;
            if(comments.Contains('\n')) //Multiple lines comments
            {
                aux = comments.Split('\n');
                for (int i = 0; i < aux.Length; i++)
                    this.textBoxComments.Text += aux[i] + Environment.NewLine;  
            }
            else //One line comments
                this.textBoxComments.Text = comments;
        }

1

除非发生了其他情况,否则不确定为什么您的代码无法工作。

我刚刚使用C#创建了一个WinForms项目,添加了一个文本框,将其设置为多行,并添加了以下代码-运行得很好。

textBox1.Text = "a\r\nb";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接