2 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
\r回車,從最老的打字機(jī)引入的概念,表示回到本行的開始位置;
\n換行,同樣來(lái)自打印技術(shù)的術(shù)語(yǔ),表示跳轉(zhuǎn)到下一行。\r\n連用,表示跳到下一行,并且返回到下一行的起始位置。這也是windows系統(tǒng)標(biāo)準(zhǔn)的換行符。在unix/linux,\n就表示換行。
messagebox和textbox,只是實(shí)現(xiàn)的方式不同而已,總是用\r\n,是沒(méi)有問(wèn)題的。
但考慮到跨平臺(tái),更好的習(xí)慣是用Environment.NewLine屬性。
追問(wèn)
可以在我的問(wèn)題中回復(fù)一下我的回答者之一盛阿盛嗎?他在問(wèn)你問(wèn)題 回答者: 盛啊盛
追答
你的Environment.NewLine 是在說(shuō)C#么? ------------------------------------------------------- 這個(gè)屬性表示換行符,對(duì)于不同的環(huán)境將編譯成不同的內(nèi)容。在windows,這個(gè)屬性被編譯為\r\n,在linux,這個(gè)屬性被編譯為\n。 雖然微軟的.net框架還不能跨平臺(tái),但是mono已經(jīng)有一個(gè)跨平臺(tái)的解決方案。 這和C#語(yǔ)言并沒(méi)有關(guān)系。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
\r 創(chuàng)建了一個(gè)新的行 \n 移動(dòng)到新的行
messagebox里的文字是label
label會(huì)直譯\n 因?yàn)閘abel是不能進(jìn)行輸入的 所以label是不需要?jiǎng)?chuàng)建一個(gè)新行的
而textbox是可輸入的
textbox就算設(shè)置了mtline也需要\r\n才能換新行 這和鍵盤輸入方面有關(guān)
b0sus
你的Environment.NewLine 是在說(shuō)C#么?
=================================================
后來(lái)查了一下 b0sus 的Environment.NewLine是可以夸平臺(tái)的
=================================================
然后做一下補(bǔ)充:一般情況下 LZ的問(wèn)題會(huì)體現(xiàn)在用textbox進(jìn)行編輯時(shí)出現(xiàn)換行丟失
當(dāng)我們使用textbox進(jìn)行多行內(nèi)容的錄入時(shí),按回車textbox會(huì)創(chuàng)建一個(gè)新的行
回車鍵的ask是13 代表\r 所以會(huì)換行 但寫入的只有\(zhòng)n
而當(dāng)我們保存了這段文本 并將文本賦值給一個(gè)文本框時(shí)
換行就丟失了
textbox的機(jī)制比較特殊 當(dāng)它遇到\r時(shí)會(huì)創(chuàng)建一個(gè)新的行 當(dāng)它遇到\n時(shí) 指針會(huì)移動(dòng)到下一行 如果沒(méi)有下一行 就會(huì)出現(xiàn)沒(méi)有換行的現(xiàn)象了
- 2 回答
- 0 關(guān)注
- 1655 瀏覽
添加回答
舉報(bào)