Ich habe eine UDF erstellt, mit der ListviewSubitems bearbeitet werden können. Dabei wird Das SubItem "selbst editierbar" (also nur auf der Fläche des Subitems).
Die Bedienung ist recht einfach. Ich hab mal ein Beispiel erstellt:
Spoiler anzeigen
AutoIt
#include "ListViewEditInput.au3"
Opt("GuiOnEventMode",1)
$hGui=GUICreate("ListviewEditExample",420,340,-1,-1)
$hListView=GUICtrlCreateListView("Spalte 1|Spalte 2|Spalte 3",10,10,200,280)
$hListView2=GUICtrlCreateListView("Spalte 1|Spalte 2|Spalte 3",215,10,200,280)
$hLabel=GUICtrlCreateLabel("Noch ist nichts passiert",10,300,300,25)
for $i=0 to 10 step 1
GUICtrlCreateListViewItem($i&":0"&"|"&$i&":1"&"|"&$i&":2",$hListView)
GUICtrlCreateListViewItem($i&":0"&"|"&$i&":1"&"|"&$i&":2",$hListView2)
next
;Starten des Editierens (Label erstellen und die MessageFunktionen aktivieren
__ListViewEditInput_StartUp($hGui)
;Listview hinzufügen (Nur Spalte 1 und 2 darf bearbeitet werden) (doubleclick)
__ListViewEditInput_AddListview($hGui,$hListView,"1,2")
;2. Listview hinzufügen (Nur Zeile 4 darf bearbeitet werden) (singleClick)
__ListViewEditInput_AddListview($hGui,$hListView2,"All","4","E")
;ESC zum abbrechen und ENTER zum abschicken initialisieren
__ListViewEditInput_InitializeKeys($hGui)
;registriere Funktion, die aufgerufen wird, wenn ein Feld bearbeitet wurde
__ListViewEditInput_RegisterFunction($hListView,"_edited","Changed")
;registriere Funktion, die aufgerufen wird, wenn ein Feld nicht bearbeitet wurde
__ListViewEditInput_RegisterFunction($hListView,"_canceled","Canceled")
;listview ist nicht mehr bearbeitbar;
__ListViewEditInput_DeleteListview($hListView2)
GUISetOnEvent($GUI_EVENT_CLOSE,"_close")
GUISetState(@SW_SHOW)
while 1
WEnd
Func _close()
exit
EndFunc
Func _edited($ctrl,$index,$subIndex)
GUICtrlSetData($hLabel,"Changed: "&$ctrl&": "&$index&":"&$subIndex)
EndFunc
Func _canceled($ctrl,$index,$subIndex)
GUICtrlSetData($hLabel,"Canceled: "&$ctrl&": "&$index&":"&$subIndex)
EndFunc
Alles anzeigen
Bisher geht es nur mit einer Gui. Ich muss also noch hinzufügen, dass auf mehreren Guis gearbeitet werden kann.
Ich freue mich schon auf eure Rückmeldung
EDIT: Füge Download neu hinzu (beim oberen steht eine Error Meldung)
EDIT: Ich hab die UDF reworked. Version 2 ist die neue :). Ich hab die Möglichkeit hinzugefügt, mit TAB in die nächste editierbare Zelle zu wechseln.