Visual Basic .Net:Classe Listbox
Un article de WikiTuto.
Sommaire |
Listbox, par définition
- contient exclusivement des items de type String
- graphiquement, se présente toujours sous une forme "développée" (ce n'est pas une liste déroulante).
- impose un choix parmi les items proposés (ce n'est pas une liste modifiable, où l'on peut entrer une valeur qui n'est pas proposée dans la liste)
- possède ou non une barre de défilement verticale (voire horizontale), selon le nombre d'éléments présents dans la liste et la place disponible pour les afficher (l'apparition et la disparition des barres de défilement sont gérées de manière automatique par VB, même si on peut toujours bidouiller cela via certaines propriétés).
Propriétés
Pour les Listbox, on va trouver plusieurs propriétés concernant le mode d'affichage, dont entre autres :
- Sorted : propriété booléenne qui indique si la liste est automatiquement triée ou non.
- Multicolumn : propriété booléenne qui permet d'afficher les items sur plusieurs colonnes.
Et une propriété fondamentale pour son comportement :
- SelectionMode : qui indique si l'on autorise ou non la multisélection des items de la liste.
Gestion des items
En ce qui concerne la gestion des items de la ListBox, il faut avoir à l'esprit une chose, de laquelle de déduisent toutes les autres :
Théorème
- Un item d'une Listbox est une chaîne de caractères, membre de la collection portant le nom de la Listbox.
Par conséquent, ce que nous avons appris au chapitre précédent sur les collections s'applique de plein droit aux items des Listbox. Comme quoi, on dira ce qu'on voudra, mais au niveau de l'articulation pédagogique, on sent bien que ce cours est drôlement bien goupillé et qu'on a pas affaire à un amateur. Enfin, moi, ce que j'en dis, hein...
Pour balayer les éléments d'une Listbox du premier au dernier, nous pourrons donc utiliser leurs numéros d'indice. Attention toutefois, Listbox n'autorise pas l'omission de la propriété Items, qu'il faudra donc stipuler en toutes lettres. Pour passer l'ensemble des éléments d'une Listbox en majuscules, on pourra donc écrire :
Exemple
Dim i As Integer For i = 0 To ListBox1.Items.Count - 1 ListBox1.Items(i) = ListBox1.Items(i).ToUpper Next i
Numérotation
- Dans une Listbox, les items sont numérotés à partir de l'indice zéro
Récupérer le contenu d'une liste
On pourra également, dans d'autres circonstances, utiliser la boucle For Each ... Next, par exemple pour récupérer tout le contenu de la liste dans une seule chaîne MaListe :
Dim element As Object Dim MaListe As String MaListe = "" For Each element In ListBox1.Items MaListe = MaListe & element Next element
Ajout dans une liste
On peut, comme dans n'importe quelle collection, ajouter un élément dans une liste via la méthode Add :
Listbox1.Items.Add("Nouvel élément")
Suppression dans une liste
Pour supprimer un élément, on n'a que l'embarras du choix. La méthode Remove demandera de fournir l'élément lui-même...
Listbox1.Items.Remove("Midnight Jokers")
tandis que la méthode RemoveAt demandera un indice :
Listbox1.Items.RemoveAt(5)
Vidage d'une liste
Enfin, Clear procèdera au nettoyage complet de la liste, en supprimant tous les éléments d'un seul coup d'un seul :
Listbox1.Clear
Sélection
Le but d'une liste, c'est de permettre à l'utilisateur d'en sélectionner un ou plusieurs items. Cette action de l'utilisateur affectera les propriétés :
- SelectedItem : qui désigne sous forme de chaîne de caractères l'élément actuellement sélectionné. Si aucun élément n'est sélectionné, cette propriété vaut une chaîne vide.
- SelectedIndex : qui désigne par son indice l'élément actuellement sélectionné. Si aucun élément n'est sélectionné, cette propriété vaut -1.
Lorsqu'une sélection multiple est possible sur une Listbox, ces deux propriétés renvoient alors des collections, dans lesquelles on peut partir à la pêche pour récupérer les différents éléments.
En ce qui concerne les événements, on peut bien sûr gérer les Listbox par l'événement Click. Mais un événement propre est disponible, qui ne se déclenche qu'en cas de changement de l'item sélectionné : il s'agit de SelectedIndexChanged. Cet événement est à la fois plus restrictif et plus large que le Click. Plus restrictif, car il ne se déclenche pas en cas de clic sur un item déjà sélectionné. Plus large, car il détectera un changement de sélection survenant y compris suite à une manoeuvre au clavier.
Exercices
| Exercice | Exécutable | Sources |
|---|---|---|
| Inventaire | [1] | [2] |
Voir aussi
- La classe Listbox
- La classe Combobox
- La classe CheckedListBox
- La classe ImageList
- La classe Treeview
- Distribuer une application
- Retour au sommaire
Source : Christophe Darmangeat




