Archeolabo
Messages postés8Date d'inscriptionmardi 11 novembre 2008StatutMembreDernière intervention28 novembre 2008
-
11 nov. 2008 à 17:48
Archeolabo
Messages postés8Date d'inscriptionmardi 11 novembre 2008StatutMembreDernière intervention28 novembre 2008
-
11 nov. 2008 à 20:03
Bonjour à tous,
Mon souci :
<li>une ListBox en style CheckBox contenant beaucoup de lignes (et donc une ScrollBar)</li><li>des OptionButtons permettant de modifier l'état des .selected des éléments</li><li>un code (VB6) du type :
</li>Private Sub OptionAll_Click(Index As Integer)
Dim ind As Integer
With Me.ListCurve(Index)
For ind = 0 To .ListCount - 1
.Selected(ind) = True ' ou dans d'autres cas : False ou encore not(.Selected(ind))
Next ind
.ListIndex = 0
End With
End Sub
C'est pas très joli à l'écran , on voit défiler tous les items ! Du coup ça va pas non plus très vite !
Est-il possible de l'éviter ? Comment ?
Faudrait pouvoir interdire temporairement le rafraichissement d'écran ... mais chais pas faire !
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201849 11 nov. 2008 à 18:10
salut,
il faut bloquer le refresh
donc soit tu la rends invisible, mais s'il y a beaucoup d'items çà peut perturber l'utilisateur
soit par API
Option Explicit
Private Declare Function
LockWindowUpdate
Lib
"user32"
(
ByVal
hwndLock
As Long
)
As Long
Private Sub
Command1_Click()
Dim ind As Integer
With List1 'Me.ListCurve(Index)
LockWindowUpdate .hWnd
For ind = 0 To .ListCount - 1
.Selected(ind) = True
Next ind
.ListIndex = 0
End With
LockWindowUpdate False
End Sub