TextBox - auto scroll ?
3 отговора
122 прегледа
TextBox - auto scroll ?
Привет,
имам си текстбокс в който се появяват разни съобщения
multiline=true
scrollbars-vertical
Запълвам го с нещо от сорта на
Text1.Text = Text1.Text & texts(i) & vbCrLf
Обаче редовете които изписвам са повече от височината на текстбокса
Може ли някакси да направя така че текстбокса автоматично да скролва надолу като добавя нов ред. Или поне като изпиша последния текст, текстбокса да се скролне до края - така че да се виждат не първите Х линии, а последните Х линии
имам си текстбокс в който се появяват разни съобщения
multiline=true
scrollbars-vertical
Запълвам го с нещо от сорта на
Text1.Text = Text1.Text & texts(i) & vbCrLf
Обаче редовете които изписвам са повече от височината на текстбокса
Може ли някакси да направя така че текстбокса автоматично да скролва надолу като добавя нов ред. Или поне като изпиша последния текст, текстбокса да се скролне до края - така че да се виждат не първите Х линии, а последните Х линии
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
(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
Бах маа му... user32 ще викаш за едно поле?!
Бах маа му... викаме си user32 за да скролнем едно текстово поле докрай! Съвсем отскоро пипам VB, ама това ми се вижда къде, къде по-просто:
Първо като го прочетох и си помислих... маа му стара... не може толкова просто нещо да се прави по толкова сложен начин!
Апропо, ако полето ти е високо само един ред, премести си vbCrLf преди ala-bala и последното въведено ще ти бъде винаги на последния ред! Иначе ще си вижда последният ред, който винаги ще ти бъде празен! Ако имаш повече редове- нямаш проблеми!
Ама баба не е жена, вие не знаете ли?
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 и последното въведено ще ти бъде винаги на последния ред! Иначе ще си вижда последният ред, който винаги ще ти бъде празен! Ако имаш повече редове- нямаш проблеми!
Ама баба не е жена, вие не знаете ли?