Функция _GUICtrlListBox_FindString

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


_GUICtrlListBox_FindString

Поиск пункта по тексту

#include <GuiListBox.au3>
_GUICtrlListBox_FindString($hWnd, $sText [, $fExact = False])

Параметры

$hWnd Дескриптор или идентификатор элемента
$sText Строка для поиска
$fExact [необязательный] True - точное сопоставление или False - частичное (False - по умолчанию)

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

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

Примечания

Поиск первой строки в ListBox, которая начинается с указанной строки.

Если используется точный поиск, то выполняется поиск пункта, текст которого в точности соответствует указанной строке, за исключением того, что поиск выполняется без учёта регистра.

См. также

_GUICtrlListBox_FindInText, _GUICtrlListBox_SelectString

Пример

#include <GuiListBox.au3>
#include <GUIConstantsEx.au3>

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

Example()
Example2()

Func Example()
    Local $iIndex, $hListBox

    ; Создаёт GUI
    GUICreate("Поиск строки в ListBox", 400, 296)
    $hListBox = GUICtrlCreateList("", 2, 2, 396, 296)

    GUISetState()

    ; Добавляет строки
    _GUICtrlListBox_BeginUpdate($hListBox)
    For $iI = 1 To 9
        _GUICtrlListBox_AddString($hListBox, StringFormat("%03d : Рандомная строка", Random(1, 100, 1)))
    Next
    _GUICtrlListBox_InsertString($hListBox, "тОчНыЙ тЕкСт", 3)
    _GUICtrlListBox_EndUpdate($hListBox)

    ; Поиск пункта
    $iIndex = _GUICtrlListBox_FindString($hListBox, "точ")
    _GUICtrlListBox_SetCurSel($hListBox, $iIndex)

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

Func Example2()
    Local $iIndex, $hListBox

    ; Создаёт GUI
    GUICreate("Поиск точной строки в ListBox", 400, 296)
    $hListBox = GUICtrlCreateList("", 2, 2, 396, 296)

    GUISetState()

    ; Добавляет строки
    _GUICtrlListBox_BeginUpdate($hListBox)
    For $iI = 1 To 9
        _GUICtrlListBox_AddString($hListBox, StringFormat("%03d : Рандомная строка", Random(1, 100, 1)))
    Next
    _GUICtrlListBox_InsertString($hListBox, "тОчНыЙ тЕкСт", 3)
    _GUICtrlListBox_InsertString($hListBox, "тОчНыЙ", 4)
    _GUICtrlListBox_EndUpdate($hListBox)

    ; Поиск пункта
    $iIndex = _GUICtrlListBox_FindString($hListBox, "точный", True)
    _GUICtrlListBox_SetCurSel($hListBox, $iIndex)

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