Страница: 1 |
|
Вопрос: Работа с объектом ListView
|
Добавлено: 19.08.05 13:58
|
|
Автор вопроса: Денис | ICQ: 109593029
|
Привет всем!
Есть объект ListView, который представляет таблицу с набором строк и столбцов. Необходимо организовать поиск по этой таблице, искомое значение может быть строка или числовое значение.
Я сделал форму, к торой водится строка поиска, а потом используя двумерный массив я сравниваю текст каждой ячейки (ListView.Item(i).SubItems(j).Text). Когда искомая ячейка найдена, то с помощью ListView.Items(i).Selected = true Выделяется вся строка.
Когда найденная строка оказывается в конце таблицы, а все строки не помещаются на экране, то выделенную строку не видно. Как сделать чтобы таблица автоматически прокручивалась до найденной строки?
И вообще посоветуйте как это сделать проще.
фильтрация строк не подойдет.
Ответить
|
Номер ответа: 2 Автор ответа: AndreyMp
ICQ: 237822510
Вопросов: 28 Ответов: 1182
|
Профиль | | #2
|
Добавлено: 23.08.05 09:41
|
Выписка из API-Guide.
'This project needs a ListBox, named List1 and a TextBox, named Text1
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Const LB_FINDSTRING = &H18F
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Add some items to the listbox
With List1
.AddItem "Computer"
.AddItem "Screen"
.AddItem "Modem"
.AddItem "Printer"
.AddItem "Scanner"
.AddItem "Sound Blaster"
.AddItem "Keyboard"
.AddItem "CD-Rom"
.AddItem "Mouse"
End With
End Sub
Private Sub Text1_Change()
'Retrieve the item's listindex
List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
End Sub
Ответить
|
Страница: 1 |
Поиск по форуму