Inkonsistente Ergebnisse mit RichTextBox ScrollToCaret

7

Ich arbeite mit einer RichTextBox in C #. Es existiert auf einer TabPage. Wenn die TabPage ausgewählt ist, möchte ich die RichTextBox auffüllen und bis zum Ende scrollen. Ich habe die kleinen Variationen der Lösungen für diese gemeinsame Frage ausprobiert, wobei die Hauptfrage in etwa wie folgt lautet:

%Vor%

oder:

%Vor%

Dies führt zu inkonsistenten Ergebnissen, wenn auch auf vorhersehbare Weise. Es wird abwechselnd zwischen dem Bildlauf nach unten und dem Scrollen um eine Zeile nach unten gescrollt. Beziehungsweise illustriert (Entschuldigung für die Links, neuer Benutzer, damit ich die Bilder nicht posten kann):
Erfolgreich nach unten gescrollt
Scrolled zu einer Zeile kurz vor dem Ende
Ich bin überrascht, nichts zu finden, was dieses Verhalten durch meine Recherchen erwähnt, und habe mich entschieden zu fragen, ob jemand hier auf dieses Problem gestoßen ist und / oder eine Lösung im Sinn hat. Wenn es darauf ankommt, nehme ich an, dass ich etwas nach den Kriterien von itsmatts Antwort .

    
art.vandelay.31415 16.12.2011, 13:49
quelle

3 Antworten

25

Ich habe einige weitere Experimente mit ScrollToCaret gemacht und es endet nicht immer in der gleichen Position. Da mein Ziel darauf beschränkt ist, nur bis ganz nach unten zu scrollen, war es ein guter Kandidat, um die WM_VSCROLL-Nachricht (277 oder 0x115) mit wParam von SB_PAGEBOTTOM (7) an das Steuerelement zu senden. Dies scrollt konsequent den ganzen Weg bis zum Ende genau wie ich brauchte:

%Vor%     
art.vandelay.31415 19.12.2011, 14:03
quelle
1

Ändern Sie dies, um Ihren Arbeitscode anzupassen ..

%Vor%     
MethodMan 16.12.2011 14:16
quelle
0

Ich habe das gleiche Problem, ich denke, ein RTB wird fast ganz von Windows-Nachrichten verwaltet, so dass es ein bisschen wie ein Kaninchen Warren klingt. Ich kenne daher den Grund für die alternierende Ausgabe nicht (aber es hat einen leichten Geschmack). Ich habe mit dieser RTB.Scrolltocaret Flackern Ausgabe aber in einem VB-Programm zu tun. Kompliment für Ihre drastische Lösung: Es funktioniert perfekt.

Sollte jemand in der Programmierumgebung auf diese Anomalie stoßen, ist hier der VB-Code

%Vor%     
Bento 27.12.2014 13:59
quelle

Tags und Links