2011-06-26 162 views
2

一個RichTextBox我現在有,將值設置爲一個RichTextBox的功能,但你怎麼能值或新行「添加」到它,而不是在RichTextBox中覆蓋現有數據?添加字符串在C#

richTextBox2.Text = DateTime.Today + " Hello"; 
+0

詹姆斯,我建議你使用一個單一的OpenID登錄,所以你會[相同的用戶](http://stackoverflow.com/users/816110/james-buttler)作爲通常 – abatishchev

回答

9
richTextBox2.AppendText(Environment.NewLine + DateTime.Today + " Hello"); 
0
richTextBox2.Text = "Something " + richTextBox2.Text + " and something" 
+0

@abatishchev有多個函數添加文本到這個,因此我不認爲你的解決方案將工作 –

+0

當控件中有很多文本時,這將會非常低效 –

+0

這只是不起作用,它會產生一個非常奇怪的文本。 – YesMan85

9
richTextBox2.AppendText(String.Format("{0} the date is {1}{2}", "Hello", DateTime.Today, Environment.NewLine)); 

,請不要使用+

+1

爲什麼沒有「+」?只是爲了可讀性?還是有其他原因? – schmijos

+3

@JosuaSchmid字符串是不可變的。使用+連鎖它們中的n個(特別是對於大字符串和/或許多鏈接)會在內存中創建比最後一個更大的n-1個字符串,從而導致(臨時)內存浪費和大量計算開銷。這就是爲什麼使用String.Format()和StringBuilder類優先於+ – 0xDEADBEEF

+0

@ 0xDEADBEEF:當使用+時,我在IL代碼中看到'string.Concat' ... – apocalypse

1
richTextBox2.Document.Blocks.Clear(); 
richTextBox2.Document.Blocks.Add(new Paragraph(new Run("string"))); 
+0

用戶要求winforms不適用於WPF。 – user1027167