2012-10-05 55 views
8

如果我追加一些RTB自動向下滾動的文本,我該怎麼做?RichTextBox中的自動滾動C#WinForms

現在我使用的是:

conversationRtb.Rtf = tab.conversationRtb.Rtf; 
conversationRtb.SelectionStart = conversationRtb.Text.Length; 
conversationRtb.ScrollToCaret(); 

但都不盡如人意。有時它不會在結束前滾動結束,而只是一行。

rtb scroll down bug

有時會產生很大的偏差。

rtb scroll down bug

我找不到原因。有沒有其他方式向下滾動?我發現AutoScrollOffset,但沒有例子它的工作原理。

+3

這兩個帖子可能有幫助。他們使用'User32.dll'來滾動。 http://stackoverflow.com/questions/8535102/inconsistent-results-with-richtextbox-scrolltocaret http://www.dutton.me.uk/2011/08/31/richtextbox-scrolltocaret-bug/ – keyboardP

+0

我寧願不要使用user32.dll。我正在使用單聲道,而且我遇到了外部庫的問題。 – sczdavos

+0

好的。我只是添加條件。如果Windows執行@keyboardP解決方案,則執行默認的ScrollToCaret。似乎工作正常。 – sczdavos

回答

7

您可以調整HideSelection value to false,AppendText將觸發正確的滾動。

+0

我試過但不適合我:( – sczdavos

+0

你在winforms ???或wpf(ScrollToEnd) –

+0

哦對不起,是的,我使用winforms。我已經更新了標籤。 – sczdavos