'Добавьте 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", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!