Page 1 sur 1
[R] Rafraichir une ListView
Posté : jeu. 12 avr. 2012 08:25
par Polau
Bonjour,
J'utilise une ListView (GUICtrlCreateListView) que je rempli avec des Items (GUICtrlCreateListViewItem).
Puis avec un bouton j’alimente ma ListView avec de nouveaux Items.
Le problème, c'est que lorsque j'ajoute un nouvel item depuis ce bouton, la liste des items ne se met pas à jour.
Je suis obligé de fermer l'application et de la ré-ouvrir pour pouvoir visualiser mon nouveau item dans la ListView.
Voyez-vous une méthode permettant de rafraichir une ListView ?
Merci d'avance
Re: [..] Rafraichir une ListView
Posté : jeu. 12 avr. 2012 09:02
par blacksoul305
Pour ma part, j'ai fais une ListView il y a pas très longtemps (merci mikell). J'ai repris le code en main et j'ai seulement un GuiCtrlCreateListViewItem qui ajoute l'item et je la vois. Vous pouvez nous poster le morceau de votre code en question ?
Re: [..] Rafraichir une ListView
Posté : jeu. 12 avr. 2012 09:31
par mikell
Effectivement ce n'est pas bien normal et ça serait intéressant de voir le code...
Mais il peut arriver que des listviews soient réticentes à l'affichage, dans ce cas on peut essayer _GUICtrlListView_AddItem
Re: [R] Rafraichir une ListView
Posté : jeu. 12 avr. 2012 11:07
par Polau
Effectivement le
GuiCtrlCreateListViewItem ajoute parfaitement l'item.
En allègent mon code afin de pouvoir le posté proprement sur le forum, j'ai trouvé tout seul mon erreur
J'utilise un setup.ini afin de stoker des informations sur la sélection de l'utilisateur.
Mon ListeView est alimenté par ce setup.ini. La création des items s’effectue à l'aide d'une fonction.
Cependant cette fonction n'était pas correctement positionner dans le code...
Afin d'aider les autres lecteurs je poste mon code allégé qui fonctionne bien.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
; Déclaration variables
$cleusb = @WorkingDir & "\"
; Création du fichier setup.ini
If Not FileExists($cleusb & "setup.ini") Then
IniWrite($cleusb & "setup.ini", "VARIABLES", "monnouvelenregistrement", "")
EndIf
; Affectation de la variable en fonction du setup
Local $monnouvelenregistrement = IniRead($cleusb & "setup.ini", "VARIABLES", "monnouvelenregistrement", "")
; Construction de l'interface GUI
$GUI = GUICreate("Ma GUI", 600, 600, 300, 200)
$Bouton1 = GUICtrlCreateButton("Ajouter", 60, 130, 75, 25)
$listview = GUICtrlCreateListView("Champ1|Champ2|Champ3", 41, 300, 400, 150)
GUICtrlCreateListViewItem("Champ1item1|Champ2item1|Champ3item1", $listview)
GUICtrlCreateListViewItem("Champ1item2|Champ2item2|Champ3item2", $listview)
GUISetState(@SW_SHOW, $GUI)
; Boucle d'attente
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Bouton1
; Selection d'un dossier
$SourceFile = FileSelectFolder("Selectionnez un dossier", "", "Tous (*.*)", 9)
; Enregistrement du chemin dans le setup
IniWrite($cleusb & "setup.ini", "VARIABLES", "monnouvelenregistrement", $SourceFile)
; Ajoute l'item dans la ListeView
GUICtrlCreateListViewItem("Champ1item3|" & $SourceFile & " |Champ3item3", $listview)
EndSwitch
WEnd
Merci de votre aide
Ps : Je ne suis pas contre quelque conseil ou remarque au passage

Re: [..] Rafraichir une ListView
Posté : jeu. 12 avr. 2012 13:27
par TommyDDR
Conseil : Quand votre sujet est résolu, éditez votre premier message et remplacez [..] par [R].