How to scroll a multiline System.windows.forms.textbox down to the last line through code?

R

Rvo

I have a userform which contains a textbox (System.Windows.forms.textbox)
with multiline set to True. This box contains a certain number of characters
which reach below the bottom of the box. During runtime of my program I add
text at the end of the contents of the textbox. I want to display the last
lines of the box at all times.
However, the textbox always displays the first x characters.

Can I scroll down to the end of the content of the textbox after each
addition of text to the box?

Kind regards,

Romain
 
O

One Handed Man \( OHM - Terry Burns \)

TextBox1.Text += "Test the quick brown fox" & vbCrLf

TextBox1.Select(TextBox1.Text.Length - 1, 0)

TextBox1.ScrollToCaret()


--

OHM ( Terry Burns )
. . . One-Handed-Man . . .

Time flies when you don't know what you're doing
 
H

Herfried K. Wagner [MVP]

* "Rvo said:
Can I scroll down to the end of the content of the textbox after each
addition of text to the box?

My FAQ:

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top