Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139

Как после листинга в ListBox'se, не выделять строку, а только навести мышку и увидеть всю строку

11.01.2011, 16:39. Показов 1258. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как показать весь текст в ListBox'se при scroll и наведя мышку?
Такая ситуация, я листаю ползунком строки и, попадаются длинные, в окошке видать только часть. Если кликнуть по окну, то произойдет еще и какое то действие... При этом в свойсиве:
List2_MouseMove указно, что:
List2.ToolTipText = List2.Text 'Т.е., я также увижу всю строку.
Но так как что-то происходит при этом. мне не надо раньше времени.
А вот как после листинга не выделять строку, а только навести мышку и увидеть всю строку ???
Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2011, 16:39
Ответы с готовыми решениями:

Кнопка ПОИСК при выводе выделять цветом всю строку
У меня курсовая по БД и у меня поиск через button, при выводе у меня показывает строку но не выделяется цветом. подскажите код очень...

Как выделить в таблице (CListCtrl) всю строку, но только одну?
Есть таблица m_IDC_LIST1 типа CListCtrl. Как сделать так, чтобы по щелчку "мыши" выделялась бы вся строка, но только одна (то есть чтобы...

хранимая процедура (MIN), как вывести всю строку, а не только 1 данное???
Привет, есть БД. Надо написать хранимую процедуру, чтобы выводилась(ись) строки со всеми данными, где минимальное расстояние. ALTER...

2
Comanche
11.01.2011, 16:57
ВАРИАНТ 1.
Тултип не ляжет ровно на строку листбокса, а будет показан под курсором мышки.

Создай проект 'Standard EXE', в него добавь форму и Юзерконтрол. На юзерконтроле размести List1, и в код юзерконтрола вставь:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
' Создание расширения для ListBox: Свойство - «Вывод в виде подсказки ToolTyp длинных элементов списка»
Option Explicit
Private Declare Function SendMessage Lib 'user32' Alias 'SendMessageA' ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    lParam As Any) As Long
Private Const LB_ITEMFROMPOINT = &H1A9
Private Const m_def_ToolTipLong = True
Dim m_ToolTipLong As Boolean
'
Private Sub UserControl_Resize()
    List1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
'
Public Sub AddItem(ByVal Item As String, Optional ByVal Index As Variant)
    List1.AddItem Item, Index
End Sub
'
Private Sub UserControl_InitProperties()
    m_ToolTipLong = m_def_ToolTipLong
End Sub
'
' свойство руководит выводом или невыводом подсказки
Public Property Get ToolTipLong() As Boolean
    ToolTipLong = m_ToolTipLong
End Property
'
Public Property Let ToolTipLong(ByVal New_ToolTipLong As Boolean)
    m_ToolTipLong = New_ToolTipLong
    PropertyChanged 'ToolTipLong'
End Property
'
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, _
       Y As Single)
    Dim lXPoint As Long, lYPoint As Long, lIndex As Long
 
    'если не нажата никакая клавиша мыши и свойство ToolTipLong установлено в True
    If (Button = 0) And (m_ToolTipLong = True) Then
        'перевод в пикселы
        lXPoint = CLng(X / Screen.TwipsPerPixelX)
        lYPoint = CLng(Y / Screen.TwipsPerPixelY)
        With List1
            'выбирает индекс списка, в зависимости от позиции курсора
            lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, ByVal ((lYPoint * 65536) + lYPoint))
            'если курсор вне записей списка
            If (lIndex >= 0) And (lIndex <= .ListCount) Then
                .ToolTipText = .List(lIndex)
            Else
                .ToolTipText = vbNullString
            End If
        End With
    End If
End Sub
'
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    m_ToolTipLong = PropBag.ReadProperty('ToolTipLong', m_def_ToolTipLong)
End Sub
'
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty('ToolTipLong', m_ToolTipLong, m_def_ToolTipLong)
End Sub
Затем положи на форму юзерконтрол, в Form_Load поставь наполнение его (AddItem) какими-нибудь данными, и запусти проект на выполнение.

ВАРИАНТ 2.
Тултип ляжет ровно поверх строки листбокса (поведение 'a la ListView'). На самом деле, это будет не тултип, а Label, перемещаемый должным образом.

Создай проект 'Standard EXE', в него добавь форму, на неё положи:
а). Листбокс List1,
б). Пикчербокс Picture1, в который положи, в свою очередь, Label1.

Вставь это в код формы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type POINTAPI
    X As Long
    Y As Long
End Type
Private Declare Function ClientToScreen Lib 'user32.dll' ( _
    ByVal hwnd As Long, _
    ByRef lpPoint As POINTAPI) As Long
Private Declare Function GetCursorPos Lib 'user32' ( _
    lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib 'user32' ( _
    ByVal hwnd As Long, _
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
12.01.2011, 10:42  [ТС]
Спасибо, буду пробовать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.01.2011, 10:42
Помогаю со студенческими работами здесь

Указатель на строку: как выводить не всю строку целиком, а конкретную букву
Есть программка: #include&lt;iostream&gt; using namespace std; void fn_str1(int i,string str1,char *p) { p=&amp;str1; ...

Как выделить всю строку DGV после поиска по столбцу?
Вот есть у меня форма с таблицей. В поле я прописываю фамилию человека и вся строка должна выделиться, а всё остальное скрыться. Но у меня...

Можно ли увидеть строку подготовленного запроса после привязки данных?
Есть подготовленный запрос вида: SELECT c1, c2, c3 FROM my_tbl WHERE c1 = CASE WHEN @iVal1 = -1 THEN c1 ELSE @iVal1 END ...

WM_COPYDATA передает только 1й символ, а не всю строку
Доброго времени суток уважаемые знатоки! Подскажите мне пожалуйста, что я делаю не так. Суть. Программа должна отправлять игре Dota 2...

Listbox: картинки появляются только после того как навести мышь на контролл
привет, есть listbox с забинденым items{Label + Image} и кнопка с функционалом: ...Заполняем actlist listActBox.ItemsSource =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru