Hi, my question is as is:How to detect if a scrollbar is at or not at the end of a richtextbox?
edit: when I say at the end I mean completely scrolled to the bottom, not anywhere else.
Hi, my question is as is:How to detect if a scrollbar is at or not at the end of a richtextbox?
edit: when I say at the end I mean completely scrolled to the bottom, not anywhere else.
Check out the GetScrollRange
and GetScrollPos
API...
Private Const SBS_HORZ = 0
Private Const SBS_VERT = 1
<DllImport("user32.dll")> _
Public Function GetScrollRange(ByVal hWnd As IntPtr, ByVal nBar As Integer, _
ByRef lpMinPos As Integer, _
ByRef lpMaxPos As Integer) As Boolean
End Function
<DllImport("user32.dll")> _
Public Function GetScrollPos(ByVal hWnd As Integer, _
ByVal nBar As Integer) As Integer
End Function
// ...
Dim scrollMin as Integer = 0
Dim scrollMax as Integer = 0
If(GetScrollRange(rtb.Handle, SBS_VERT, scrollMin, scrollMax) Then
Dim pos as Integer = GetScrollPos(rtb.Handle, SBS_VERT)
// Detect if they're at the bottom
EndIf
Notes:
To determine if the scrollbar is visible, call GetWindowLong
and check for WS_VSCROLL
To determine the max value the slider can get to, call GetScrollInfo
; I think the maximum value is
scrollMax - largeChange + 1
One method is to use the GetScrollPos function. Here's kind of a long winded example of it using VB.NET.
http://www.codeproject.com/KB/vb/VbNetScrolling.aspx?print=true