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

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

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

#1

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#3

Message 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

 
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre