\r回车,从最老的打字机引入的概念,表示回到本行的开始位置;
\n换行,同样来自打印技术的术语,表示跳转到下一行。\r\n连用,表示跳到下一行,并且返回到下一行的起始位置。这也是windows系统标准的换行符。在unix/linux,\n就表示换行。
messagebox和textbox,只是实现的方式不同而已,总是用\r\n,是没有问题的。
但考虑到跨平台,更好的习惯是用Environment.NewLine属性。
\r 创建了一个新的行 \n 移动到新的行
messagebox里的文字是label
label会直译\n 因为label是不能进行输入的 所以label是不需要创建一个新行的
而textbox是可输入的
textbox就算设置了mtline也需要\r\n才能换新行 这和键盘输入方面有关
b0sus
你的Environment.NewLine 是在说C#么?
=================================================
后来查了一下 b0sus 的Environment.NewLine是可以夸平台的
=================================================
然后做一下补充:一般情况下 LZ的问题会体现在用textbox进行编辑时出现换行丢失
当我们使用textbox进行多行内容的录入时,按回车textbox会创建一个新的行
回车键的ask是13 代表\r 所以会换行 但写入的只有\n
而当我们保存了这段文本 并将文本赋值给一个文本框时
换行就丢失了
textbox的机制比较特殊 当它遇到\r时会创建一个新的行 当它遇到\n时 指针会移动到下一行 如果没有下一行 就会出现没有换行的现象了
textbox默认是single单行的,你可以通过属性,使它支持多行。就可以显示换行了。
textbox 设置 TextMode="MultiLine"
textbox须设置一下