2011-06-26 160 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