#include #include #include #include Opt( "MustDeclareVars", 1 ) Global $hGui,$aColors[100][10], $iRows=100 global $aItems[100][10] global $bItems[100][10] Global $idLV[28] global $hLV global $hLV_listview[28] global $iLV_Index[28] global $msg,$listview_number,$listview_row Global $iEditMode =11 Example() Func Example() ; Create GUI $hGui = GUICreate( "listview changing between and doubleklik", 850, 800 ) ; Create ListView $idLV[1] = GUICtrlCreateListView("col0"&"|col1",20, 40, 400, 340, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT, $WS_BORDER)) _GUICtrlListView_SetExtendedListViewStyle($idLV[1], $LVS_EX_FULLROWSELECT) _GUICtrlListView_SetColumnWidth($idLV[1], 0, 75) _GUICtrlListView_SetColumnWidth($idLV[1], 1, 75) $idLV[2] = GUICtrlCreateListView("col0"&"|col1",420, 40, 400, 340, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT, $WS_BORDER)) _GUICtrlListView_SetExtendedListViewStyle($idLV[2], $LVS_EX_FULLROWSELECT) _GUICtrlListView_SetColumnWidth($idLV[2], 0, 75) _GUICtrlListView_SetColumnWidth($idLV[2], 1, 75) FillArray() _GUICtrlListView_AddArray($idLV[1], $aItems) $iLV_Index[1] = _GUIListViewEx_Init($idLV[1], $aItems, 0, 0, True, 1 + 8 + 32) ; + 16 _GUICtrlListView_AddArray($idLV[2], $bItems) $iLV_Index[2] = _GUIListViewEx_Init($idLV[2], $bItems, 0, 0, True, 1 + 8 + 32) ; + 16 _GUIListViewEx_MsgRegister() GUISetState( @SW_SHOW ) ; Message loop $listview_row=1000; the listviews are less then 1000 rows (used for check) while 1 listviewitem_after_doubleclick($iEditMode = 0) if $listview_row<>1000 then GUICtrlCreateLabel("listview number: "&$listview_number&"-----"&"row clicked: "&$listview_row, 70, 600, 200, 30) $listview_row=1000 EndIf $msg = GUIGetMsg() Select Case $msg =$GUI_EVENT_CLOSE ExitLoop EndSelect wend EndFunc Func FillArray() For $i = 0 To $iRows - 1 For $j = 0 To 1; aantal kolommen $aItems[$i][$j] = $i Next Next For $i = 0 To $iRows - 1 For $j = 0 To 1; aantal kolommen $bItems[$i][$j] = $i &" OK" Next Next EndFunc func listviewitem_after_doubleclick($iEditMode = 0, $iDelta_X = 0, $iDelta_Y = 0) Local $aEdited, $iError ; If an item was double clicked If $fGLVEx_EditClickFlag Then ; Clear flag $fGLVEx_EditClickFlag = False ; Check Type parameter Switch Abs($iEditMode) Case 0, 11, 12, 13, 21, 22, 23, 31, 32, 33 ; Single edit or both axes set to valid parameter ; Allow Case Else Return SetError(1, 0, "") EndSwitch ; Set data for active ListView Local $iLV_Index = $aGLVEx_Data[0][1] ; If no ListView active then return If $iLV_Index = 0 Then Return SetError(2, 0, "") EndIf ; Get clicked item info Local $aLocation = _GUICtrlListView_SubItemHitTest($hGLVEx_SrcHandle) ; Check valid row If $aLocation[0] = -1 Then Return SetError(3, 0, "") EndIf $listview_row=$aLocation[0] $listview_number=$iLV_Index EndIf ; If nothing was clicked Return "" EndFunc ;==>_GUIListViewEx_EditOnClick