Главная страницаОбратная связьКарта сайта

Добавить горизонтальную прокрутку в ListBox



'Добавьте ListBox на форму, а также элемент CommandButton.
'Добавьте 1 длинную string-переменную в ListBox.
'Самым полным примером я считаю вариант 3, поскольку заранее вы не можете
'знать, какой у вас элемент в ListBox'е самый длинный.
'А Вариант 3 методом перебора всех элементов ListBox'а определяет самый
'длинный элемент (по числу символов)

'Пример 1
Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Form_Load()
Static x As Long

List1.AddItem "Добавление длинной строки для проверки примера"
'Замените все значения 'List1.List(0)'самым длинным элементом ListBox'а
If x < TextWidth(List1.List(0) & " ") Then
x = TextWidth(List1.List(0) & " ")
If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
End If
End Sub

'Пример 2
Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Command1_Click()
Dim s As String
Static x As Long

s = InputBox("Please enter any text", "List scroll", "thIs Is a simple scrollbar sample For demonstration purposes")
List1.AddItem s
If x < TextWidth(s & " ") Then
x = TextWidth(s & " ")
If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
End If
End Sub

'Пример 3
Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Command1_Click()
Static x As Long

For Item = List1.ListCount - 1 To 0 Step -1
If x < TextWidth(List1.List(Item) & " ") Then
x = TextWidth(List1.List(Item) & " ")
End If
Next

If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
End Sub

Private Sub Form_Load()
List1.AddItem "длинная переменная, которую надо"
List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-то"
List1.AddItem "длинная переменная, которую надо увид"
List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-тоывеапапавп"
End Sub


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Добавить горизонтальную прокрутку в ListBox", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2023 Дискета.info