Winforms 清除RichTextBox中文本的SelectionBackColor
可能重复:Winforms 清除RichTextBox中文本的SelectionBackColor,winforms,richtextbox,textselection,backcolor,Winforms,Richtextbox,Textselection,Backcolor,可能重复: 我正在使用RichTextBox控件查找和更改某些单词的SelectionBackColor属性。单词不是固定的,所以基本上不同背景颜色的文本是不同的 我已经尝试过两种方法来清除前一篇文章的背景色,然后再将其应用到生词中: 选择所有文本并将SelectionBackColor设置为控件的BackColor 将文本保存为字符串,然后将其放回RichTextBox以清除其格式 虽然这两种方法都有效,但当控件中有大量文本时,会出现一个问题。对于第一种方法,所有文本都被选中(你可以注意
我正在使用RichTextBox控件查找和更改某些单词的SelectionBackColor属性。单词不是固定的,所以基本上不同背景颜色的文本是不同的 我已经尝试过两种方法来清除前一篇文章的背景色,然后再将其应用到生词中:
- 选择所有文本并将SelectionBackColor设置为控件的BackColor
- 将文本保存为字符串,然后将其放回RichTextBox以清除其格式
Edit2:对于那些感兴趣的人来说,位于的解决方案似乎起到了作用。我会避免被选为重复的(出于一些奇怪的原因),因为它会产生更多的图形问题。您尝试过使用双缓冲吗?可能是这样的:
richTextBox1.SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer,true);
是的,我已经在使用双缓冲。但遗憾的是,它并没有带来太大的区别。上面的方法会导致一些问题,即在调用EndUpdate()后,并非所有文本都会出现。字符确实会打印在控件上,但在您选择它们之前,它们的颜色与背景颜色相同,而且garret的行为也很怪异。示例:进行更改并调用EndUpdate()|选择该文本后,使用一些代码更新了第一篇文章。
richTextBox1.SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer,true);