文本框中显示意外的字符

时间:2011-06-08 01:09:20

标签: c# .net winforms

我有一个非常简单的.NET程序。只是在文本框中写一个字符串。我的字符串末尾出现了一个奇怪的角色。

enter image description here

这只发生在我的32位XP盒子上。同样的程序在另一台64位Windows 2008机器上运行良好。

程序就像这样简单。

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.Text = "Hello\n\0\0\0\0\0\0";
    }

我知道在字符串的末尾添加\ 0很奇怪,我可以在应用到文本框之前修剪它们。文本框设置为允许多行。

出于好奇,有人知道问题的来源吗?两台机器都安装了.NET 3.5 SP1。它们都设置为具有相同的区域设置。我怀疑它是否与32位或64位有关。

更新

感谢@DBM和@Andrew。奇怪的角色来自\ n但与\ 0无关。现在,听起来Windows 2008可以理解\ r \ n和\ n。任何人都可以证实吗?

2 个答案:

答案 0 :(得分:6)

Windows中的标准行尾序列为\r\n。如果没有前面的回车符(\n),则文本框无法将\r识别为换行符。

答案 1 :(得分:5)

一般来说,您应该使用Environment.NewLine而不是\ r \ n。

以解释的方式:Environment.NewLine将包含运行应用程序的任何平台的正确的转义字符序列。在Windows上,它是\ r \ n,但* nix(如果我没记错的话)使用\ n仅