Функция _GUICtrlListView_FindItem

         Описание функции


_GUICtrlListView_FindItem

Поиск пункта с указанными характеристиками

#include <GuiListView.au3>
_GUICtrlListView_FindItem($hWnd, $iStart, ByRef $tFindInfo [, $sText = ""])

Параметры

$hWnd Дескриптор или идентификатор элемента
$iStart Индекс, от которого начинать поиск или -1, чтобы искать с самого начала. Указанный элемент исключается из поиска.
$tFindInfo Структура $tagLVFINDINFO, содержащая искомую информацию
$sText [необязательный] Строка для сравнения с текстом пункта. Это справедливо, если $LVFI_STRING или $LVFI_PARTIAL установлены в элементе Flags структуры

Возвращаемое значение

Успех:Возвращает индекс пункта
Ошибка:Возвращает -1

См. также

_GUICtrlListView_FindParam, _GUICtrlListView_FindNearest, $tagLVFINDINFO

Пример

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

$Debug_LV = False ; Проверяет ClassName передаваемый в ListView функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()
    Local $tInfo, $iI, $hListView

    GUICreate("ListView Поиск пункта по параметрам", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState()

    ; Добавляет колонки
    _GUICtrlListView_AddColumn($hListView, "Пункты", 100)

    ; Добавляет пункты
    _GUICtrlListView_BeginUpdate($hListView)
    For $iI = 1 To 100
        _GUICtrlListView_AddItem($hListView, "Пункт " & $iI)
    Next
    _GUICtrlListView_EndUpdate($hListView)

    ; Устанавливает значение Param пункта 50
    _GUICtrlListView_SetItemParam($hListView, 49, 1234)

    ; Поиск пункта назначения
    $tInfo = DllStructCreate($tagLVFINDINFO)
    DllStructSetData($tInfo, "Flags", $LVFI_PARAM)
    DllStructSetData($tInfo, "Param", 1234)
    $iI = _GUICtrlListView_FindItem($hListView, -1, $tInfo)
    MsgBox(4160, "Информация", "Индекс пункта назначения: " & $iI)
    _GUICtrlListView_EnsureVisible($hListView, $iI)

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main