David Gard
David Gard

Reputation: 12067

Force a MultiLine TextBox Horizontal ScrollBar to the left

I have a MultiLine TextBox that is updated over a period of time as an app runs, and I've managed to make it so that the TextBox scrolls to the bottom, ensuring that the latest entry is always shown.

However, sometimes the text is quite long and goes off of the side of the TextBox, so the Horizontal ScrollBar scrolls to the right.

How can I amend the code below so that the ScrollBar is always to the left, meaning that the beginning of lines is always visible? Please note that I do not wish to wrap text, as I can't have one entry on multiple lines. Thanks.

Private Sub UpdateCurrentProgress(ByVal Text As String)

    If Text = "" Then Exit Sub

    Dim Textbox As TextBox = Me.txtCurrentProgress

    If Textbox.Text <> "" Then Text = vbCrLf & Text

    Textbox.AppendText(Text)
    Textbox.Select(Textbox.TextLength, 0)
    Textbox.ScrollToCaret()

End Sub

Upvotes: 2

Views: 1246

Answers (2)

Steve
Steve

Reputation: 216313

If I understand your problem correctly, then you need to get first the last line index and then select the first char of that line.

Dim lineNumber = textBox1.Lines.Count()-1
textBox1.Select(textBox1.GetFirstCharIndexFromLine(lineNumber), 0)

Upvotes: 1

You can select the first char at the current line like this:

Me.TextBox1.Select(Me.TextBox1.GetFirstCharIndexOfCurrentLine(), 0)

Upvotes: 4

Related Questions