2012-10-05 37 views
8

¿Cómo puedo hacer eso si añado un poco de texto para que el RTB se desplace automáticamente hacia abajo?Autoscrolling en RichTextBox C# WinForms

Ahora estoy usando:

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

Pero no está funcionando bien. A veces no se desplaza hacia el final, sino una línea antes del final.

rtb scroll down bug

A veces se hace una gran compensación.

rtb scroll down bug

no puedo encontrar por qué. ¿Hay alguna otra manera de desplazarse hacia abajo? He encontrado AutoScrollOffset pero no hay ejemplos de cómo funciona.

+3

Estas dos publicaciones pueden ayudar. Usan 'User32.dll' para desplazarse en su lugar. http://stackoverflow.com/questions/8535102/inconsistent-results-with-richtextbox-scrolltocaret http://www.dutton.me.uk/2011/08/31/richtextbox-scrolltocaret-bug/ – keyboardP

+0

Preferiría no use user32.dll. Estoy usando mono y tengo problemas con bibliotecas externas. – sczdavos

+0

Ok. Acabo de agregar condición. Si Windows lo hace, la solución @keyboardP lo hace por defecto ScrollToCaret. Parece que funciona bien. – sczdavos

Respuesta

7

Puede ajustar HideSelection value to false, AppendText activará el desplazamiento correcto.

+0

Lo he intentado pero no funciona para mí :( – sczdavos

+0

estás en winforms ??? o wpf (ScrollToEnd) –

+0

Oh, lo siento, sí, estoy usando winforms. He actualizado las etiquetas. – sczdavos

Cuestiones relacionadas