Hi,
ich möchte unter einer Listview mit Mehrfachauswahl, bei Änderung der Auswahl, die Anzahl der ausgewählten Elemente in einem Label anzeigen.
Das nachfolgende Script funktioniert solang man zur Mehrfachauswahl Strg + (Maus oder Leertaste) verwendet. Wählt man aber einen Bereich mit Shift + Maus/Cursor-Tasten aus so wird der Label nicht aktualisiert.
Bin für jeden Vorschlag dankbar, probier jetzt schon ewig rum.
Vielen Dank vorab.
[autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
Local $msg
GUICreate("My GUI") ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW) ; will display an empty dialog box
;~ Listview erstellen
$lv=GUICtrlCreateListView("Rnd1|Rnd2|Rnd3",10,10,300,300,$LVS_SHOWSELALWAYS,Bitor($LVS_EX_FULLROWSELECT,$LVS_EX_GRIDLINES))
;~ 20 Zeilen mit Zufallswerten zwischen 1-50 hinzufügen
for $i = 1 to 20
GUICtrlCreateListViewItem(Random(1,50,1)&"|" & Random(1,50,1) & "|" & Random(1,50,1),$lv)
Next
;~ Label der bei Änderung der Auswahl die Anzahl der ausgewählten Elemente anzeigen soll erstellen
$lbl = GUICtrlCreateLabel("",10,320,300,20)
$CurrentSelection = _GUICtrlListView_GetSelectionMark($lv)
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
if _GuiCtrlListview_GetSelectionChange() Then
GUICtrlSetData($lbl,_GUICtrlListView_GetSelectedCount($lv))
EndIf
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
[/autoit][autoit][/autoit][autoit]Func _GuiCtrlListview_GetSelectionChange()
$oldSelection = $CurrentSelection
$newSelection = _GUICtrlListView_GetSelectionMark($lv)
if $oldSelection <> $newSelection Then
$CurrentSelection = $newSelection
return True
Else
return False
EndIf
EndFunc