2011-04-29 49 views
0

您好,我有以下代碼 -添加間距文本框導致

 richTextBox1.Text = richTextBox1.Text + action + "ok: " + ok.ToString(); 
     richTextBox1.Text = richTextBox1.Text + "err: " + err.ToString(); 
     richTextBox1.Text = richTextBox1.Text + "\r\n"; 
     textBox1.Text = textBox1.Text; 

結果看起來像 -

確定:7err:0

但我want-

OK :7

err:0

隨着間距,使它看起來更好,我該怎麼做?

+0

增加一個' 「\ r \ n」'在確定發言結束.. – 2011-04-29 12:38:42

回答

3

你可以添加其他2線:

richTextBox1.Text += Environment.NewLine; 
richTextBox1.Text += Environment.NewLine; 
之間的「OK」和「犯錯」

- 假設你要輸出的兩條線之間的空行。但是,您應該要麼是使用string.FormatStringBuilder創建的連接字符串這樣低效率的輸出。

你也不需要最後:

textBox1.Text = textBox1.Text; 

因爲這只是設置文本框內容回到本身什麼都不做。

+0

或者使用'Environment.NewLine'而不是'\ r \ N'。 – alex 2011-04-29 12:55:16

+0

@alex - 良好的呼叫。 – ChrisF 2011-04-29 18:29:48

1

你已經有了答案,你只是把它放錯了地方!關鍵是使用轉義序列\r\n,它插入一個回車符和一個新行。

此外,沒有任何理由來了拆分此代碼爲多行。這樣做最終會導致性能損失。最好一次完成所有的字符串連接。 (你做得不夠級聯這裏使用StringBuilder類的理由,但它是值得牢記的字符串是在.NET中,並相應地編寫代碼不變。)

嘗試改寫這樣的代碼:

textBox1.Text = textBox1.Text + action + "ok: " + ok.ToString(); + "\r\n" + 
       "err: " + err.ToString(); + "\r\n"; 

您也可以完成淘汰的最後一行代碼,因爲這簡直就是textBox1.Text值設置爲自身。這是一個無操作,這意味着它什麼都不做。

1

第一,你可以做所有這些在單個語句,第二你可以使用+ =操盤手,和第三那是什麼最後陳述幹什麼?它不需要,第四個添加「\ n」後,你需要的每個部分沒有限制你應該把它放在哪裏,不需要「\ r」。

+1

在這裏使用'+ ='運算符不會讓你有任何特別的地方。這只是他已有的代碼的語法糖。它既不修復原始問題,也不修復字符串連接執行的低效率。 – 2011-04-29 12:47:37

+0

@Code Gray,是的,但它理解得更好,我寧願看到一個+ =操作符,而不是尋找:a =垃圾+ a +垃圾; – atoMerz 2011-04-29 12:53:50

+0

對我來說看起來一樣。重要的是你明白代碼在做什麼,而不是在語法中尋找容易識別的模式。他們的意思完全一樣,在檢查後應該很明顯。 – 2011-04-29 13:02:55