Visual Basic, .NET, ASP, VBA, VBScript
 
  Библиотека кодов  
  Стандартные элементы >>> ListBox  
     
  Добавить горизонтальную прокрутку в 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

 
     
  VBNet online (всего: 51608)  
 

Логин:

Пароль:

Регистрация, забыли пароль?


В чате сейчас человек
 
     
  VBNet рекомендует  
   
     
  Лучшие материалы  
 
ActiveX контролы (112)
Hitman74_Library (36119)
WindowsXPControls (20739)
FlexGridPlus (19374)
DSMAniGifControl (18295)
FreeButton (15157)
Примеры кода (546)
Parol (18027)
Passworder (9299)
Screen saver (7654)
Kerish AI (5817)
Folder_L (5768)
Статьи по VB (136)
Мое второе впечатление... (11236)
VB .NET: дорога в будущее (11161)
Основы SQL (9225)
Сообщения Windows в Vi... (8788)
Классовая теория прогр... (8619)
 
     
Техническая поддержка MTW-хостинг | © Copyright 2002-2011 VBNet.RU | Пишите нам