Самым полным примером я считаю вариант 3,
поскольку заранее вы не можете знать, какой у вас
элемент в ListBox'е самый длинный. А Вариант
3 методом перебора всех элементов ListBox'а
определяет самый длинный элемент (по числу
символов)
'Пример 1Private 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