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

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

_Main()

Func _Main()
	Local $sText, $hListBox

	; Создаёт GUI
	GUICreate("Устанавливает верхний пункт", 400, 296)
	$hListBox = GUICtrlCreateList("", 2, 2, 396, 296)
	GUISetState()

	; Добавляет строки
	_GUICtrlListBox_BeginUpdate($hListBox)
	For $iI = 1 To 100
		$sText = StringFormat("%03d : Рандомная строка ", $iI)
		For $iX = 1 To Random(1, 20, 1)
			$sText &= Chr(Random(65, 90, 1))
		Next
		_GUICtrlListBox_AddString($hListBox, $sText)
	Next
	_GUICtrlListBox_EndUpdate($hListBox)

	; Получает первый видимый пункт
	MsgBox(4160, "Информация", "Верхний индекс: " & _GUICtrlListBox_GetTopIndex($hListBox))

	; Устанавливает первый видимый пункт
	_GUICtrlListBox_SetTopIndex($hListBox, 50)

	; Получает первый видимый пункт
	MsgBox(4160, "Информация", "Верхний индекс: " & _GUICtrlListBox_GetTopIndex($hListBox))

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