Page 1 sur 1
[..] Autoscroll une listeview?
Posté : ven. 12 juin 2009 20:35
par ethneldryt
Bonjour, dans une listview je peux voir 10 ligne. Puis il y a 5 autres mais il faut baisser la barre de defilement vert le bas avec la souris. Maintenant est t'il possible de faire decendre a la derniere ligne en cliquand sur un bouton? Merci.
Re: [..] Autoscroll une listeview?
Posté : ven. 12 juin 2009 23:50
par jumby
Bonjour,
Oui c'est tout à fait possible grâce à la fonction : _GUICtrlListView_BeginUpdate
Voici un exemple de son utilisation en passant par un bouton (rajout du beginupdate et endupdate indispensable) :
► Afficher le texte
Code : Tout sélectionner
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$ListView1 = GUICtrlCreateListView("|", 120, 56, 250, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 50, 50)
for $i = 1 to 100 step 1
GUICtrlCreateListViewItem($i, $ListView1)
Next
$Button1 = GUICtrlCreateButton("Button1", 464, 96, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_GUICtrlListView_BeginUpdate($ListView1)
_GUICtrlListView_Scroll($ListView1, 50, 9999)
_GUICtrlListView_EndUpdate($ListView1)
EndSwitch
WEnd
Re: [..] Autoscroll une listeview?
Posté : sam. 13 juin 2009 01:48
par orax
Autre exemple :
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
GUICreate("", 400, 400)
Global $hListView = GUICtrlCreateListView("test", 0, 0, 400, 400)
GUISetState()
For $i = 1 To 100
_GUICtrlListView_AddItem($hListView, "blablabla...")
Next
; d'après l'exemple précédent de jumby
$y = _GUICtrlListView_GetItemPositionY($hListView, _GUICtrlListView_GetItemCount($hListView))
_GUICtrlListView_Scroll($hListView, 0, $y)
; ou de cette façon...
; sélectionne le dernier élément
;~ _GUICtrlListView_ClickItem($hListView, _GUICtrlListView_GetItemCount($hListView) - 1)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()