Работа с ListBox

Программирование на Visual Basic for Applications
alex_ustas
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 31.07.2004 (Сб) 19:53

Работа с ListBox

Сообщение alex_ustas » 12.08.2004 (Чт) 14:28

Добавляю элемент в список следующим образом:
"UserForm1.ListBox1.AddItem Worksheets("Лист1").Cells(Х, Y)"
Вобщем, лентяй я. Подскажите пожалуйста, как выделять в списке элементы. Например, если в ячейке прописано положительное число, добавленный элемент в ListBox должен быть красного цвета, если отрицательное - синего. Вот такой у меня вопрос :(

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 12.08.2004 (Чт) 19:52

вобщем в listbox'e элементы цветом выделять нельзя...
Ничто так не ограничивает полёт мысли программиста, как компилятор

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 13.08.2004 (Пт) 10:57

Ну почему, незнаю, как насчет элементов Microsoft Forms 2.0, а обычный можно и разукрасить. Было - бы желание.

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: Работа с ListBox

Сообщение SUPchik » 20.05.2009 (Ср) 22:21

Подскажите,как сделать всплывающую подсказку для выбранной строки в listboxe?
Нет ни одной надёжной системы безопасности!!!

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Работа с ListBox

Сообщение arvitaly » 20.05.2009 (Ср) 23:01

Код: Выделить всё
Option Explicit
Private Type POINTAPI
   X As Long
   Y As Long
End Type

Private Const LB_ITEMFROMPOINT As Long = &H1A9
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

Private Declare Function LBItemFromPt Lib "comctl32" _
  (ByVal hwnd As Long, _
   ByVal ptx As Long, _
   ByVal pty As Long, _
   ByVal bAutoScroll As Long) As Long

Private Sub Form_Load()
    list1.AddItem "Элемент0"
    list1.AddItem "Элемент1"
    list1.AddItem "Элемент2"
    list1.AddItem "Элемент3"
    list1.AddItem "Элемент4"
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As _
    Integer, X As Single, Y As Single)
    Dim n As Long
    n = ItemUnderMouse(list1.hwnd, X, Y)
    If n > -1 Then
        list1.ToolTipText = "Элемент № " & n
    Else
        list1.ToolTipText = "Не выбран элемент"
    End If
End Sub

Public Function ItemUnderMouse(ByVal list_hWnd As Long, _
    ByVal X As Single, ByVal Y As Single)
Dim pt As POINTAPI

    pt.X = X \ Screen.TwipsPerPixelX
    pt.Y = Y \ Screen.TwipsPerPixelY
    ClientToScreen list_hWnd, pt
    ItemUnderMouse = LBItemFromPt(list_hWnd, pt.X, pt.Y, _
        False)
End Function


На форме listbox c именем list1

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Работа с ListBox

Сообщение arvitaly » 20.05.2009 (Ср) 23:30

Ааа, это VBA..., ну для Listbox наверное никак у него нет hwnd

Зато можно вот так, так даже лучше, можно вообще картинки вставить или еще что-нибудь типа там кнопочки)) :D
Вложения
ListBoxToolTipText.xls
(34.5 Кб) Скачиваний: 282

SUPchik
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 15.10.2008 (Ср) 21:46
Откуда: Луховицы

Re: Работа с ListBox

Сообщение SUPchik » 21.05.2009 (Чт) 17:06

arvitaly,спасибо за пример!!! :)
Нет ни одной надёжной системы безопасности!!!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList