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


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


Partie 1 Partie 2 Partie 3 Partie 4

 

Quel plaisir de développer sous l'OS Windows ! Il nous met à disposition toute une série d'outils qui nous permettent de créer des interfaces unifiées de manière simplifiée. Parmi ces outils, il y a les moteurs de base de données, les drivers, et surtout les contrôles.

Parmi les contrôles fournis par Windows et Windows CE il y en a un que j'affectionne tout particulièrement tellement il est pratique, c'est le contrôle ListView qui est un ListBox puissance dix.

Je vous présente le contrôle ListView...

Le contrôle ListView permet d'afficher des lignes (ce sont des ListItems) et chaque ligne peut avoir des colonnes (ce sont les SubItems), une icône par ligne. Les largeurs des colonnes peuvent être modifiées par programme et/ou par l'utilisateur.

Voici un exemple de contrôle ListView qui comporte 3 colonnes, pas d'icône en début de ligne et qui a sa 3ème colonne centrée alors que les 2 autres sont cadrées à gauche.

Ajouter ce contrôle au projet

Le contrôle ListView est un contrôle ActiveX fourni en standard avec eVB, mais qui doit être ajouté au projet car il ne fait pas partie du runtime de base de eVB. Pour ajouter ce contrôle au projet, il faut dans l'IDE de eVB cliquer sur menu "Project", puis choisir l'item "Components". Une liste permet alors de choisir le ou les contrôles à ajouter au projet. Il faut ajouter la ligne suivante :

 

Une fois que vous avez effectué cette opération, vous disposez dans la boite à outils de eVB d'un contrôle supplémentaire que vous pouvez poser sur n'importe quelle feuille eVB en cours de construction :

 

 

 

 

 

 

 

 

 

 

Programmer l'apparence du contrôle

Maintenant que nous avons ajouté un contrôle Listview à notre fenêtre Form1, nous allons tout de suite lui donner un autre nom, car "ListViewCtrl1" dans le code çà ne veut pas dire grand chose. Personnellement j'ai pour habitude de commencer le nom des Listview par "LV_" et de terminer par le rôle du Listview dans le programme. Si par exemple nous utilisons ce Listview pour lister les horaires des trains, nous pouvons utiliser comme nom "LV_Trains".

Nous allons pour commencer programmer les colonnes de notre Listview. Nous allons lui créer les colonnes "Départ" pour la ville de départ, la colonne "Heure", pour l'heure de départ, la colonne "Arrivée" pour la ville d'arrivée et enfin et de nouveaau la colonne "Heure" qui cette fois sera l'heure d'arrivée. Pour celà nous devons travailler avec une collection, fournie par le contrôle Listview, qui est "ColumnHeaders". Cette collection contient des objets "ColumnHeader" qui sont le définition de chaque colonne. Nous allons profiter de l'événement Form_Load de la fenêtre pour créer nos colonnes. L'ajout des colonnes se fait en utilisant la méthode "Add" de la collection "ColumnHeaders" qui retourne un objet "ColumnHeader". Dans notre exemple, nous ne récupérons pas cet objet :

Rem On place le Listview en mode rapport
Rem qui permet de créer des colonnes
LV_Trains.View = lvwReport

Rem Création des colonnes
Call LV_Trains.ColumnHeaders.Add(, , "Départ", 900)
Call LV_Trains.ColumnHeaders.Add(, , "Heure", 900)
Call LV_Trains.ColumnHeaders.Add(, , "Arrivée", 900)
Call LV_Trains.ColumnHeaders.Add(, , "Heure", 900)

Ce qui donne après exécution ceci :

Chaque "ColumnHeader" peut posséder un index, ce qui indique son emplacement (on ne l'a pas utilisé ici, on s'est juste contenté de les ajouter dans le bon ordre), et une clé, qui permet de le retrouver ci besoin dans la collection "ColumnHeaders" (on n'en a pas mis ici).

On ajoute les lignes

Les lignes d'un Listview sont des objets "ListItem" qui sont stockés dans la collection "ListItems". Pour ajouter des lignes, il suffit d'utiliser la méthode "Add" qui nous retourne un objet "ListItem". Nous récupérons cet objet car nous devons accéder au tableau "SubItem()" pour affecter les libellés des colonnes :

Dim wItem As ListItem

Rem Ajout de la première ligne
Set wItem = LV_Trains.ListItems.Add(, , "Chambéry")
wItem.SubItems(1) = "06:00"
wItem.SubItems(2) = "Paris"
wItem.SubItems(3) = "09:15"

Rem Ajout de la deuxième ligne
Set wItem = LV_Trains.ListItems.Add(, , "Chambéry")
wItem.SubItems(1) = "15:30"
wItem.SubItems(2) = "Lyon"
wItem.SubItems(3) = "17:15"

ce qui donne ceci :

Voilà pour la première partie. La seconde partie vous apprendra à réagir aux événements 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.