Le premier site francophone dédié au développement Pocket PC


Comment utiliser le contrôle ListView ? (partie 2)
 
   


Partie 1 Partie 2 Partie 3 Partie 4

 

Nous allons maintenant apprendre à réagir aux événements du contrôle Listview.

ItemClick

Cet événement est généré lorsque l'on sélectionne un Listitem. Lorsque le Listview est en mode rapport, c'est la première colonne qui réagit aux cliques comme vous pouvez le voir sur cet image.

 

Pour notre Listview "LV_Trains", la procédure événement se présente ainsi :

Private Sub LV_Trains_ItemClick(ByVal Index As Long)

Le paramètre "Index" nous indique la position du ListItem sélectionné dans la collection "ListItems". Si nous voulons récupérer le ListItem complet il nous suffit d'écrire :

Private Sub LV_Trains_ItemClick(ByVal Index As Long)
Dim wItem As ListItem
Set wItem = LV_Trains.ListItems(Index)
Msgbox "Item=" & wItem.Text
End Sub

ColumnClick

Cet événement est généré lorsque l'utilisateur clique sur un entête de colonne. La procédure événement se présence ainsi :

Private Sub LV_Trains_ColumnClick(ByVal Index As Long)

Le paramètre Index indique l'emplacement de l'objet "ColumnHeader" dans la Collection "ColumnHeaders". Si nous voulons récupérer l'object "ColumnHeader" cliqué, il suffit d'écrire :

Private Sub LV_Trains_ColumnClick(ByVal Index As Long)
Dim wCol as ColumnHeader
Set wCol = LV_Trains.ColumnHeaders(Index)
Msgbox "Colonne=" & wCol.Text
End Sub

BeforeLabelEdit et AfterLabelEdit

Si vous placez la propriété "LabelEdit" à la valeur zéro (lvwAutomatic), il est possible d'éditer la propriété "Text" de chaque "ListItem", en d'autres termes, il est possible d'éditer la première colonne de chaque ligne :

Lorque l'utilisateur active la modification (en cliquant 2 fois sur la première colonne d'une ligne), il y a 1 événement qui est généré : "BeforeLabelEdit". Si vous décidez que pour une raison ou une autre l'édition ne doit pas avoir lieu, il suffit de placer dans le paramètre "Cancel" de cet procédure événement la valeur True (vrai), et l'édition est abandonnée :

Private Sub LV_Trains_BeforeLabelEdit(Cancel As Boolean)
Dim wItem As ListItem
On Error Resume Next
Set wItem = LV_Trains.SelectedItem
On Error GoTo 0
If wItem Is Nothing Then Exit Sub
If Mid(wItem.Text, 1, 1) = "$" Then Cancel = True
End Sub

Dans cet exemple, l'édition est interdite si le premier caractère de la zone à éditer (la première colonne) est "$".

Lorsque la saisie est terminée, et avant que les modifications soient prises en compte, l'événement "AfterLabelEdit" est généré, et là aussi, le paramètre "Cancel" permet d'annuler les modifications en y plaçant la valeur True (vrai). Avec ces 2 événements vous avez un contrôle complet sur ce qui est saisi.

Voilà la fin de cette 2ème partie. Dans la 3ème partie nous allons apprendre comment ajouter des icônes à chaque ligne du contrôle Listview.

 

Stéphane Sibué

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.