Aide pour méthode clear du treeview & drag n drop entre 2 treeview

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 915 fois - Téléchargée 40 fois

Contenu du snippet

J'ai un temps de rafraîchissement beaucoup trop long (souris bloquée etc...)lorsque j'utilise la méthode "clear" du treeview(Le treeview étant ,avant l'appel de la méthode, rempli de noeuds). Est-ce que quelqu'un connait un moyen de vider le treeview instantanément?

Je cherche aussi un bout de code exemple pour le drag n drop entre 2 treeview.
Merci d'avance

H.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
23 février 2008

je suis ravis de connaitre ce site important et interressant mercie
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Haddock il y a un forum pour poser tes question cette section est prévu pour deposer des sources d'exemple mais surement pas pour demander de l'aide

A++
Crazyht
Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
Salut,

C'est pas vraiment l'endroit pour poser ta question... tu aurais du le faire dans le forum destiné à cela. C'est pas grâve !

Voici le code qui permet de vider un treeview via API:

'DECLARATIONS CONSTANTES
Const TV_FIRST As Long = &H1100
Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Const TVM_DELETEITEM As Long = (TV_FIRST + 1)
Const TVGN_ROOT As Long = &H0
Const WM_SETREDRAW As Long = &HB

'DECLARATION API
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub ClearTreeView(ByVal tvHwnd As Long)

Dim lNodeHandle As Long

SendMessageLong tvHwnd, WM_SETREDRAW, False, 0

Do
lNodeHandle = SendMessageLong(tvHwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0)
If lNodeHandle > 0 Then
SendMessageLong tvHwnd, TVM_DELETEITEM, 0, lNodeHandle
Else
Exit Do
End If
Loop

SendMessageLong tvHwnd, WM_SETREDRAW, True, 0

End Sub


Exemple: ClearTreeView(MonTreeview.Hwnd)

Voilà, j'espère que cette méthode sera plus efficace...

P.S: une façon de gagner du temps est de rendre invisible le treeview pendant l'action, puis de le rendre visible à nouveau... Cela permet d'éviter le rafraîchissement de celui-ci, ce qui prend pas mal de ressources aussi...

Tchao

NéoB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.