C#換行符號(hào)顯示錯(cuò)誤問(wèn)題的解決方法
筆者在日常編程工作中,遇到C#換行符號(hào)無(wú)法正常顯示的問(wèn)題,究其原因,很可能是在保存TextBox和RichTextBox中的文本數(shù)據(jù)的時(shí)候,經(jīng)常會(huì)保存無(wú)效字符。所以有了以下的解決方法。
C#換行符號(hào)的問(wèn)題
C#中,一個(gè)label的text屬性在程序中硬編碼成"aa\nbb"的字樣時(shí),顯示的效果是可以換行的,但這個(gè)字符串放到資源文件中,再?gòu)某绦蛑衛(wèi)oad時(shí),顯示時(shí)就把\n也給顯示出來(lái)了。該怎么解決?
C#換行符號(hào)問(wèn)題的解決辦法
使用Environment.NewLine
比如
- textBox1.Text="First Line" + Environment.NewLine + "Second Line";
- http://www.geekpedia.com/KB19_How-can-I-insert-a-new-line-in-a-TextBox.html
另外,由于在保存TextBox和RichTextBox中的文本數(shù)據(jù)的時(shí)候,經(jīng)常會(huì)保存無(wú)效字符,
可以用以下代碼來(lái)替代WriteLine。
- FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate,FileAccess.ReadWrite);
- StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
- sw.Write(txtReturn.Text.Replace("\n",Environment.NewLine)); // Environment.NewLine is the real trick
- sw.Dispose(); sw = null;
- fs.Dispose(); fs = null;
備注
對(duì)于非 Unix 平臺(tái),NewLine 包含“\r\n”的字符串;對(duì)于 Unix 平臺(tái),包含“\n”的字符串。
NewLine 的屬性值是一個(gè)專(zhuān)門(mén)為當(dāng)前平臺(tái)和 .NET Framework 實(shí)現(xiàn)而自定義的常數(shù)。
NewLine 提供的功能常常是換行符 (newline)、換行符 (line feed)、分行符、回車(chē)符、CRLF 和行尾等術(shù)語(yǔ)表示的含義。
NewLine 可以與語(yǔ)言特定的換行支持一起使用,如 Microsoft C# 和 C/C++ 中的“\r”和“\n”,或 Microsoft Visual Basic 中的 vbCrLf。
NewLine 自動(dòng)附加到 System.Console.WriteLine 和 System.Text.StringBuilder.AppendLine 方法處理的文本。
【編輯推薦】