Como hago un scroll automaticamente

Cristian
26 de Diciembre del 2003
Tengo un textbox q actua como una barra de estado , cada cosa que pasa en el programa va apareciendo eln el textbox , lo que quiero hacer es que siempre la barra de deslizamiento vertical este en el fondo , es decir , a medida que vayan apareciendo los datos en el textbox , la barra de deslizamiento vaya bajando automaticamente para dejar ver el ultimo dato introducido .
Como podria hacerlo??
Un saluteeee y felices fiestasss

Juan
26 de Diciembre del 2003
Se puede hacer con la función API SendMessage. Hay
tres mensajes distintos para hacer scrolls en un textbox,
EM_SCROLL, EM_LINESCROLL y EM_SCROLLCARET. Te
pongo un ejemplo usando el último de ellos, pon este código
en un formulario que tenga un textbox y un commandbutton:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const EM_SCROLLCARET = &HB7

Private Sub Command1_Click()
Text1.Text = Text1.Text & vbNewLine & "Nueva linea de texto (" & CStr(Now) & ")"
End Sub

Private Sub Text1_Change()
Text1.SelStart = Len(Text1.Text) 'Situamos el cursor(caret) al final
SendMessage Text1.hwnd, EM_SCROLLCARET, 0, 0 'Desplazamos hasta el cursor
End Sub