ToolTipText на ListBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

ToolTipText на ListBox

Сообщение klop086 » 23.09.2004 (Чт) 14:24

Как сделать так чтобы при наводке указателя мышки на ListBox ToolTipText становился равным значению ячейки ListBox, на который
она наведена?

И ещё - как сделать так, что бы при правом щелчке(и при левом тоже)мыши выделялся элемент ListBox, на который она наведена?
Сначала подумай, потом помолчи.

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 23.09.2004 (Чт) 19:55

Изпользуй глобальный хук на Mouse. Кто-то на форуме въложил изходник. Но надеюсь будут идеи получше...
Ученье - свет, неученых - тьма.

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 23.09.2004 (Чт) 21:03

Нахрена хуки? у нас есть положение курсора относительно левого верхнего угла листбокса.
Есть высота строки листбокса, значит есть и инфа о том, какой элемент нам нужен.
Я знаю верный путь

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 24.09.2004 (Пт) 0:39

Hell /HiLevel Bot/ писал(а):У нас есть положение курсора относительно левого верхнего угла листбокса.
Есть высота строки листбокса, значит есть и инфа о том, какой элемент нам нужен.


А как эту самую высоту строки листбокса найти :?:
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.09.2004 (Пт) 7:49

LB_ITEMFROMPOINT ?

А можно LB_GETITEMHEIGHT и руками искать.
Изображение

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 24.09.2004 (Пт) 14:17

Насщет положегния курсора я и сам догадался. Я хочу сделать так:
В событие List1_MouseMove передаётся координата Х и У. Так как Лист у меня прижат к верху формы всё становится очень просто: я же знаю размер шрифта и т.д. Методом простого вычитания я нахожу злощасный Итем.

Вот со вторым вопросом (про правую кнопку) мне чего-то вообще непонятно: Чего за Хук , да ещё и Глобальный, и с чем его едят.

Можно, впринципе сделать так же как и с первым вопросом, только в событиии Mouse_Down, но ето товарисчи Геморрой, нельзя ли чего попроще?
Сначала подумай, потом помолчи.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 24.09.2004 (Пт) 16:57

klop086 писал(а):Можно, впринципе сделать так же как и с первым вопросом, только в событиии Mouse_Down, но ето товарисчи Геморрой, нельзя ли чего попроще?

Вообщето, никаго гимора здесь нет.
Рекомендую создать функцию, например:
Код: Выделить всё
Private Function GetListIndexFromCursor(y As Single)
    ' здесь пишешь код того способа, которым находишь индекс:
    ' как tyomitch писал (LB_ITEMFROMPOINT или LB_GETITEMHEIGHT)
    ' или так как ты указал(через свойство шрифта)
    ' 1-й Способ предпочтительнее
End Function

не забывай про List1.TopIndex если есть СкролБары.

Тогда второй вопрос:
Код: Выделить всё
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, y As Single)
    If Button = vbRightButton Then List1.ListIndex = GetListIndexFromCursor(y)
End Sub

И никакого гимора! :wink:
А хуки, думаю, тебе тоже не понравятся! Вот там-то - гимор!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 25.09.2004 (Сб) 13:18

Я уже сделал без LB_ITEMFROMPOINT, но все равно спасибо.
Сначала подумай, потом помолчи.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: С.Т. и гости: 3

    TopList