Как сделать горизонтальный скролинг listbox'а? - VB

Узнай цену своей работы

Формулировка задачи:

Как сделать горизонтальный скролинг listbox'а? подскажите.

Решение задачи: «Как сделать горизонтальный скролинг listbox'а?»

textual
Листинг программы
  1. 'Пример 1
  2. Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" _
  3. (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  4. Const LB_SETHORIZONTALEXTENT = &H194
  5.  
  6. Private Sub Form_Load()
  7. Static x As Long
  8. List1.AddItem "Добавление длинной строки для проверки примера"
  9. 'Замените все значения 'List1.List(0)'самым длинным элементом ListBox
  10. If x < TextWidth(List1.List(0) & " ") Then
  11. x = TextWidth(List1.List(0) & " ")
  12. If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
  13. SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
  14. End If
  15. End Sub
  16.  
  17. 'Пример 2
  18.  
  19. Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" _
  20. (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  21. Const LB_SETHORIZONTALEXTENT = &H194
  22.  
  23. Private Sub Command1_Click()
  24. Dim s As String
  25. Static x As Long
  26. s = InputBox("Please enter any text", "List scroll", "this is a simple scrollbar sample for demonstration purposes")
  27. List1.AddItem s
  28. If x < TextWidth(s & " ") Then
  29. x = TextWidth(s & " ")
  30. If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
  31. SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
  32. End If
  33. End Sub
  34.  
  35. 'Пример 3
  36.  
  37. Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" _
  38. (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  39. Const LB_SETHORIZONTALEXTENT = &H194
  40.  
  41. Private Sub Command1_Click()
  42. Static x As Long
  43. For Item = List1.ListCount - 1 To 0 Step -1
  44. If x < TextWidth(List1.List(Item) & " ") Then
  45. x = TextWidth(List1.List(Item) & " ")
  46. End If
  47. Next
  48. If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
  49. SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0
  50. End Sub
  51.  
  52. Private Sub Form_Load()
  53. List1.AddItem "длинная переменная, которую надо"
  54. List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-то"
  55. List1.AddItem "длинная переменная, которую надо увид"
  56. List1.AddItem "длинная переменная, которую надо увидеть или не увидеть или еще что-тоывеапапавп"
  57. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы