Maps an index to an item ID
#include <GuiListView.au3>
_GUICtrlListView_MapIndexToID ( $hWnd, $iIndex )
$hWnd | Control ID/Handle to the control |
$iIndex | 0-based index of an item |
ListView controls internally track items by index.
This can present problems because indexes can change during the control's lifetime.
The ListView control can tag an item with an ID when the item is created.
You can use this ID to guarantee uniqueness during the lifetime of the control.
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $iID, $idListview
GUICreate("ListView Map Index To ID", 400, 300)
$idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState(@SW_SHOW)
; Add column
_GUICtrlListView_AddColumn($idListview, "Items", 100)
; Add items
_GUICtrlListView_AddItem($idListview, "Item 1")
_GUICtrlListView_AddItem($idListview, "Item 2")
_GUICtrlListView_AddItem($idListview, "Item 3")
; Show ID for item 2
$iID = _GUICtrlListView_MapIndexToID($idListview, 1)
MsgBox($MB_SYSTEMMODAL, "Information", "Index to ID: " & $iID)
MsgBox($MB_SYSTEMMODAL, "Information", "ID to Index: " & _GUICtrlListView_MapIDToIndex($idListview, $iID))
; Loop until the user exits.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>Example