Страницы: 1
RSS
Горизонтальная прокрутка в ListBox
 
Уважаемые, знатоки!  
Как можно добавить скролл в ListBox???
 
{quote}{login=The_Prist}{date=26.03.2010 04:50}{thema=}{post}Никак. Нет такого свойства. Он появляется сам по мере необходимости. Меру необходимости определяет VBA и не очень хорошо.    
 
В принципе-то можно сделать, но муторно и оно того не стоит.{/post}{/quote}  
 
И каким образом это обойти если мне нужно прочитать строку целиком?
 
я нашел такой метод:    
 
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    
 
Но excel ругается на hwnd!
 
Понял. Насколько я знаю листбокс может иметь несколько колонок, возможно ли каким нибудь образом вписывать в одну из колонок Index строки?
 
А не подскажете как?  
 
Есть вот такая операция lst_box_checked_ads.List = Range("A1:A9").Value Нужно чтобы слева были пронумерованы строки?
 
{quote}{login=The_Prist}{date=26.03.2010 05:24}{thema=}{post}Не-е-ет...Либо создавайте еще диапазон с нумерацией строк(например столбец B)  
 
lst_box_checked_ads.List = Range("A1:B9").Value  
 
 
либо циклом заполняйте  
 
Dim rCell As Range, li As Long  
For Each rCell In Range("A1:A9")  
Me.ListBox1.AddItem rCell  
Me.ListBox1.List(li, 1) = rCell.Row: li = li + 1  
Next rCell{/post}{/quote}  
 
Спасибо огромное, как всегда! :)
 
{quote}{login=The_Prist}{date=26.03.2010 05:01}{thema=}{post}И правильно делает. Потому как нет такого свойства у ListBox в VBA. А пример Вы нашли для VB. А пропасть между VB и VBA не такая уж и маленькая....{/post}{/quote}  
 
А нельзя сделать с помощью элемента формы scrollBar для listbox исходя из длины текста?
 
Можно сделать "Лупу". При виделении в Listboxe элемента он дублируется в отдельном TextBoxe.
 
{quote}{login=Vl55}{date=26.03.2010 09:46}{thema=}{post}Можно сделать "Лупу". При виделении в Listboxe элемента он дублируется в отдельном TextBoxe.{/post}{/quote}  
Это интересно! Каким образом не подскажете?
 
Private Sub ComboBox1_Change()  
TextBox1 = ComboBox1  
End Sub
 
ListBox, конечно.
Страницы: 1
Наверх