2009-05-29 122 views
0

可能不是双缓冲,但我试图使用RichTextBox制作荧光笔(纯粹的娱乐)。我遇到的问题是,当有很多突出显示的单词时,程序员制作的闪烁显示,甚至看到文本框滚动。如何在c#中缓冲RichTextBox的缓冲区?

我不认为RichTextBox具有DoubleBuffered属性,即使它有,它也不会说话,闪烁是我的错。

回答

1
int pos = myTextBox.SelectionStart; 
RichTextBox buffer = new RichTextBox(); 
buffer.Rtf = myRichTextBox.Rtf; 

//Do whatever you wanna do in buffer 


myTextBox.Rtf = buffer.Rtf; 
myTextBox.SelectionStart = pos; 
myTextBox.SelectionLength = 0; 

钍,我仍然有一个问题,因为,无论我做什么,myTextBox.ZoomFactor似乎被删除。

1

在更改颜色之前,只需在RichTextBox上使用LockWindowUpdate即可。

+2

你不想使用`LockWindowUpdate`。你想使用`SetWindowRedraw`。 LockWindowUpdate不是为此目的而设计的。 (http://blogs.msdn.com/b/oldnewthing/archive/2004/06/10/152612.aspx) – 2011-12-29 00:19:51