Bonjour,
Dans le test suivant, lorsqu'à l'ouverture du programme, je ne clique pas sur une ligne de la listview, j'obtiens bien la msgbox qui me signale mon "oubli".
SI je sélectionne une ligne, j'obtiens bien aussi la msgbox demandant confirmation de l'affichage.
Jusque là tout va bien. Mais après cette sélection, le programme la conserve. Pour l'annuler, je dois cliquer sur une partie vide de la listview. Comment coder de manière à ce qu' une fois l'action précédente terminée, la sélection soit oubliée par le programme et permette le réaffichage de la msgbox d'erreur ?
Je vous remercie.
► Afficher le texte
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $listview
Example()
While 1
Sleep(1000)
WEnd
Func Example()
Local $button, $item1, $item2, $item3, $msg
GUICreate("Test", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x00E0FFFF)
GUISetOnEvent($GUI_EVENT_CLOSE,"Quitter")
$listview = GUICtrlCreateListView("N°|Nom|Prénom", 10, 10, 200, 150)
$button = GUICtrlCreateButton("Afficher", 75, 170, 70, 20)
GUICtrlSetOnEvent($button,"filtrer")
$item1 = GUICtrlCreateListViewItem("1|DUPONT|Jean", $listview)
$item2 = GUICtrlCreateListViewItem("2|DURAND|Louis", $listview)
$item3 = GUICtrlCreateListViewItem("3|DUMAS|Lucie", $listview)
GUISetState()
EndFunc
Func filtrer()
Local $message = ""
if GUICtrlRead($listview) <> "" Then
$message = StringSplit(GUICtrlRead(GUICtrlRead($listview)),"|")
afficher($message[1], $message[2], $message[3])
Else
MsgBox(48,"Erreur !" ,"Sélectionnez l'enregistrement que vous souhaitez afficher.")
endif
EndFunc
Func afficher($Num, $n, $p)
Local $MsgBox1 = MsgBox(4,"Affichage de l'enregistrement n° " & $Num,"Confirmez-vous l'affichage de l'enregistrement n° " & $Num & " : " & $n & " " & $p & " ?")
if $MsgBox1 = 6 THEN
msgbox(4096,"AFFICHAGE", "Affichage réussi")
Else
MsgBox(48,"Abandon" ,"L'affichage est annulé.")
EndIf
EndFunc
Func Quitter()
Exit
EndFunc