Page 1 sur 1

[..] Action après un click sur une checkbox d'une Listview

Posté : lun. 17 mai 2010 22:51
par Davyly
Bonsoir,

Je suis confronté à un souci et je n'arrive pas à m'en sortir, je prends donc le temps de venir vous voir ;-), pour vous solliciter.

Dans une "GUI", j'ai une "listview" d'utilisateurs à l’aide du code :

Code : Tout sélectionner

_GUICtrlListView_SetExtendedListViewStyle($list, BitOR($LVS_EX_GRIDLINES, $LVS_EX_CHECKBOXES)
Mon souci c'est que je n'arrive pas à générer une action lors d'un clic sur une "checkbox", dans la section "GUIGetMsg()" ?!?

J'ai cherché dans le forum (mal ?!?, mauvais mots clés ?!?, ...) et je ne n'ai rien trouvé à ce sujet. J'avoue que je ne maitrise pas tout à fait cette partie (GUI) d'AutoIT3.

Quelqu'un a une idée à me soumettre, un exemple sous le coude ?

D'avance merci et bonne soirée.
A bientôt.

Re: [..] Action après un click sur une checkbox d'une Listview

Posté : mar. 18 mai 2010 08:10
par Tlem
Si vous voulez gérer une action au moment ou vous cliquez sur la CheckBox, vous allez devoir utiliser la fonction GUIRegisterMsg afin de surveiller les éléments de votre ListView.
Une partie de la réponse se trouve dans ce sujet : http://www.autoitscript.fr/forum/viewto ... f=4&t=5138

Si vous voulez connaitre l'état de la CheckBox au moment ou vous cliquez sur un autre bouton (Ok ou Valider ou autre), il vous faudra lire chaque élément du ListView et tester son état.
Vous trouverez les fonctions nécessaires dans l'aide de AutoIt (_GUICtrlListView_xxx). :wink:

Re: [..] Action après un click sur une checkbox d'une Listview

Posté : sam. 22 mai 2010 17:18
par SagePourpre
Voici un court exemple fonctionnel.

À vous de l'adapter à vos besoins mais il démontre bien la faisabilité de ce
que vous souhaitez faire ainsi qu'une méthode pour y parvenir.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>


Global $_A_Litemsname[10][2] = _
[ _
['item 1'], _
['item 2'], _
['item 3'], _
['item 4'], _
['item 5'], _
['item 6'], _
['item 7'], _
['item 8'], _
['item 9'], _
['item 10']]
$gui = GUICreate('')
GUISetState()

$list = GUICtrlCreateListView('Colonne 1|sss',0,0,300,300)
_GUICtrlListView_SetExtendedListViewStyle($list, BitOR($LVS_EX_GRIDLINES, $LVS_EX_CHECKBOXES))
For $i = 0 To UBound($_A_Litemsname)-1
    $_A_Litemsname[$i][1] = GUICtrlCreateListViewItem($_A_Litemsname[$i][0],$list)
Next


;_ArrayDisplay($_A_Litemsname)

While 1
    $msg = GUIGetMsg()

    For $i = 0 To UBound($_A_Litemsname)-1
        If $msg = $_A_Litemsname[$i][1] Then
            ConsoleWrite(_GUICtrlListView_GetItemText($list,$i) & '  Coché : ' & _GUICtrlListView_GetItemChecked($list,$i) & @CRLF)

        EndIf
        Next

    Switch $msg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd