Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Работа с объектом ListView Добавлено: 19.08.05 13:58  

Автор вопроса:  Денис | ICQ: 109593029 
Привет всем!
Есть объект ListView, который представляет таблицу с набором строк и столбцов. Необходимо организовать поиск по этой таблице, искомое значение может быть строка или числовое значение.
Я сделал форму, к торой водится строка поиска, а потом используя двумерный массив я сравниваю текст каждой ячейки (ListView.Item(i).SubItems(j).Text). Когда искомая ячейка найдена, то с помощью ListView.Items(i).Selected = true Выделяется вся строка.

Когда найденная строка оказывается в конце таблицы, а все строки не помещаются на экране, то выделенную строку не видно. Как сделать чтобы таблица автоматически прокручивалась до найденной строки?
И вообще посоветуйте как это сделать проще.
фильтрация строк не подойдет.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 19.08.05 18:59
Через API, SendMessage хенделу ListView1 на прокрутку списка... токо команду я сходу непомню, надо в инете поискать...

Ответить

Номер ответа: 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

Ответить

Номер ответа: 3
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #3 Добавлено: 23.08.05 09:45
С небольшой переделкой это должно работать и под Ваши нужды.

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 23.08.05 22:22
Call SendMessage(ListView.hWnd, LVM_ENSUREVISIBLE, lIndex - vbNull, ByVal 0&;)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам