Scroll RichTextBox

  • Thread starter Thread starter JezB
  • Start date Start date
* "JezB said:
How do I programatically scroll a RichTextBox to the end of it's contents ?

When using a RichTextBox control for displaying logging information, it is
useful to scroll the recently added line into view. There are two ways to
accomplish this:

\\\
Private Const WM_VSCROLL As Int32 = &H115
Private Const SB_BOTTOM As Int32 = 7

Private Declare Auto Function SendMessage Lib "user32.dll" ( _
ByVal hwnd As IntPtr, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32 _
) As Int32

Private Sub AddLine(ByVal Destination As RichTextBox, ByVal Text As String)
With Destination
.AppendText(Text & ControlChars.NewLine)
SendMessage(Destination.Handle, WM_VSCROLL, SB_BOTTOM, 0)
End With
End Sub
///

- or -

\\\
Dim ctr As Control = Me.ActiveControl
With Me.RichTextBox1
.Focus()
.AppendText("Hello World!")
.ScrollToCaret()
End With
ctr.Focus()
///

The 2nd solution has a side-effect: Setting the focus to the
RichTextBox control may raise validation events.
 
Setting the selection to the end of RichTextBox with the hide selection
property to false does the job to some point.

Etienne Boucher
 
* "Etienne Boucher said:
Setting the selection to the end of RichTextBox with the hide selection
property to false does the job to some point.

.... only if the richtextbox has the focus.
 
Back
Top