C# - 文本框换行问题

mut*_*y91 19 c#

我有一个文本框,我正在尝试使用以下代码行打印到它:

logfiletextbox.Text = logfiletextbox.Text + "\n\n\n\n\n" + o + " copied to " + folderlabel2.Text;
Run Code Online (Sandbox Code Playgroud)

其中folderlabel 2显然是一个文本框.我放入的第一件事是相同的文本框,因此不会删除任何文本.过多的新行证明了我的问题,因为文本框中没有新行(是的,设置为多行)."o"在FileInfo数组中是FileInfo类型.

为什么这些新行不会出现在文本框中?

Jon*_*eet 41

使用"\ r \n"而不是"\n".Windows文本框需要CRLF作为行终止符,而不仅仅是LF.

可能你可以使用Environment.NewLine- 但我不知道Mono TextBoxes在处理"\n"方面做了什么(这Environment.NewLine将是Linux盒子上的内容).如果它使用"\ r \n"开始在最后开始添加额外的东西那么这将打破大量现有的应用程序 - 但如果它需要 "\ r \n",这将破坏使用的应用程序Environment.NewLine.

Environment.NewLine是你正在运行的整个平台的默认新行 - 但如果你使用的是一个小工具包可以做一件事,但是文本文件通常会做些什么呢?坦率地说这有点乱.如果有一个单独的TextBox.NewLine属性,不同的实现可以适当处理,那将是很好的.

  • 甚至更好,使用`Environment.NewLine`. (6认同)

Jam*_*ran 5

我相信文本框需要一个Environment.NewLine(应该是“\r\n”)

请注意,它必须是回车符 (\r) 后跟换行符 (\n)。如果你颠倒顺序,它就不起作用。