TextBox - auto scroll ?

3 отговора 122 прегледа
#1

TextBox - auto scroll ?

Привет,

имам си текстбокс в който се появяват разни съобщения
multiline=true
scrollbars-vertical

Запълвам го с нещо от сорта на
Text1.Text = Text1.Text & texts(i) & vbCrLf

Обаче редовете които изписвам са повече от височината на текстбокса
Може ли някакси да направя така че текстбокса автоматично да скролва надолу като добавя нов ред. Или поне като изпиша последния текст, текстбокса да се скролне до края - така че да се виждат не първите Х линии, а последните Х линии

Отговор
в отговор на Microsoft #2

Re: TextBox - auto scroll ?

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_LINESCROLL = &HB6
Private Const EM_GETLINECOUNT = &HBA

Private Sub Command1_Click()
Static a As Long
Dim LineCount As Long

a = a + 1
Text1.Text = Text1.Text & "ala-bala" & a & vbCrLf
LineCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0, 0)
Call SendMessage(Text1.hwnd, EM_LINESCROLL, 0, LineCount)

End Sub

Отговор
в отговор на Ptr #3

Re: TextBox - auto scroll ?

Cool !
Много ти благодаря

Отговор
в отговор на Ptr #4

Бах маа му... user32 ще викаш за едно поле?!

Бах маа му... викаме си user32 за да скролнем едно текстово поле докрай! Съвсем отскоро пипам VB, ама това ми се вижда къде, къде по-просто:
Private Sub Command1_Click()

Text1.Text = Text1.Text & "ala-bala" & a & vbCrLf
Text1.SelStart = Len(Text1.Text)
Text1.SelLength = 0
End Sub


Първо като го прочетох и си помислих... маа му стара... не може толкова просто нещо да се прави по толкова сложен начин!

Апропо, ако полето ти е високо само един ред, премести си vbCrLf преди ala-bala и последното въведено ще ти бъде винаги на последния ред! Иначе ще си вижда последният ред, който винаги ще ти бъде празен! Ако имаш повече редове- нямаш проблеми!


Ама баба не е жена, вие не знаете ли?
Отговор