Contrôles d'éléments multiples : utilisation des contrôles ListBox et ComboBox

Mise à jour : novembre 2007

Dans cette leçon, vous apprendrez à ajouter des éléments aux listes et à les supprimer. Vous apprendrez également à exécuter une action lorsqu'un utilisateur sélectionne un élément dans une liste.

Si vous souhaitez donner une liste de choix aux utilisateurs, vous pouvez afficher la liste d'éléments dans un contrôle ListBox ou ComboBox.

Un contrôle ListBox vous permet d'afficher plusieurs éléments en même temps. Les utilisateurs peuvent ainsi faire défiler une liste plus longue. Un élément sélectionné par l'utilisateur se met en surbrillance dans la liste, comme le montre l'illustration suivante.

Contrôle ListBox

Contrôle ListBox

Un contrôle ComboBox correspond à la combinaison d'une zone de texte et d'une zone de liste. Par défaut, la zone de liste déroulante s'affiche comme une zone de texte, mais une liste apparaît lorsque les utilisateurs cliquent sur la flèche de déroulement. Lorsque l'utilisateur sélectionne un élément, il se met en surbrillance et est visible dans l'affichage par défaut, comme le montre l'illustration suivante.

Contrôle ComboBox

Contrôle ComboBox

Les processus pour ajouter des éléments aux zones de liste et aux zones de liste déroulante sont identiques. Vous pouvez utiliser la méthode Add du contrôle ListBox et la méthode Add du contrôle ComboBox pour ajouter des éléments.

Essayez !

Pour ajouter des éléments à une zone de liste

  1. Dans le menu Fichier, cliquez sur Nouveau projet.

    La boîte de dialogue Nouveau projet s'affiche.

  2. Cliquez sur Application Windows Forms, puis sur OK.

    Un nouveau projet Windows Forms s'ouvre.

  3. Ajoutez un contrôle ListBox au formulaire, en conservant le nom par défaut, ListBox1.

  4. Double-cliquez sur le formulaire pour ajouter le gestionnaire d'événements par défaut à l'éditeur de code.

  5. Dans le gestionnaire d'événements Form_Load, insérez le code suivant pour ajouter des éléments à la liste.

    With Me.ListBox1.Items
        .Add("red")
        .Add("blue")
        .Add("green")
        .Add("yellow")
        .Add("orange")
        .Add("pink")
        .Add("brown")
        .Add("black")
    End With
    
  6. Appuyez sur F5 pour exécuter le programme.

    Le formulaire s'ouvre et affiche un contrôle ListBox qui contient une liste de couleurs.

  7. Fermez le programme.

Exécution d'une action lors de la modification des éléments sélectionnés

Vous pouvez exécuter une action, comme l'affichage d'une couleur, lorsque l'utilisateur sélectionne l'élément correspondant dans une zone de liste. À cette fin, écrivez un code dans le gestionnaire d'événements SelectedIndexChanged du contrôle ListBox. Il existe également un événement correspondant pour le contrôle ComboBox.

Vous pouvez déterminer quel élément de la liste est sélectionné à l'aide de la propriété SelectedItem. Vous pouvez assigner la couleur sélectionnée dans la liste à la propriété BackColor d'un contrôle à l'aide de la méthode FromName de l'objet Color.

Pour afficher la couleur sélectionnée dans la zone de liste

  1. Ajoutez un contrôle TextBox au formulaire, en conservant le nom par défaut, TextBox1.

  2. Double-cliquez sur le contrôle ListBox pour ajouter le gestionnaire d'événements par défaut dans l'éditeur de code.

  3. Dans le gestionnaire d'événements ListBox_SelectedIndexChanged, ajoutez le code suivant pour afficher la couleur dans la zone de texte. Assurez-vous que la variable ColorName contient une valeur avant de l'assigner à la propriété BackColor de la zone de texte.

    Dim ColorName As String = CStr(ListBox1.SelectedItem)
    
    If ColorName IsNot Nothing Then
        Me.TextBox1.BackColor = _
            System.Drawing.Color.FromName(ColorName)
    End If
    
  4. Appuyez sur F5 pour exécuter le programme.

  5. Lors de l'ouverture du formulaire, cliquez sur un élément dans la zone de liste pour visualiser la couleur sélectionnée affichée dans la zone de texte.

  6. Fermez le programme.

Vérification de l'existence d'un élément dans la liste

Lorsque vous ajoutez des éléments à une liste, vous ne souhaitez pas la plupart du temps dupliquer un élément existant. Par exemple, vous souhaitez permettre aux utilisateurs de copier un élément dans la zone de liste vers une zone de liste déroulante en double-cliquant sur l'élément. L'élément ne doit pas être ajouté s'il se trouve déjà dans la zone de liste déroulante. Vous pouvez utiliser la méthode Contains pour déterminer si l'élément se trouve déjà dans la zone de liste déroulante. Il existe également une méthode Contains correspondante pour la zone de liste.

Pour ajouter des éléments à une zone de liste déroulante

  1. Ajoutez un contrôle ComboBox au formulaire, en conservant le nom par défaut, ComboBox1.

  2. Pour ouvrir l'éditeur de code, cliquez avec le bouton droit de la souris sur le formulaire, puis cliquez sur Afficher le code.

  3. Dans la liste déroulante Nom de la classe de l'éditeur de code, cliquez sur ListBox1.

  4. Dans la liste déroulante Nom de la méthode, cliquez sur DoubleClick pour créer le gestionnaire d'événements.

  5. Dans le gestionnaire d'événements ListBox1_DoubleClick, insérez le code suivant pour ajouter des éléments à la zone de liste déroulante. Étant donné qu'une zone de liste peut être vide, assurez-vous que l'élément sélectionné n'est pas vide avant de l'ajouter.

    If ListBox1.SelectedItem IsNot Nothing Then
        If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then
            Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem)
        End If
    
        Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem
    
    End If
    
  6. Appuyez sur F5 pour exécuter le programme.

    Double-cliquez sur les éléments dans la zone de liste et vérifiez qu'ils n'ont été ajoutés à la zone de liste déroulante qu'une seule fois.

  7. Fermez le programme.

Suppression d'un élément d'une zone de liste

Vous pouvez supprimer un élément d'une zone de liste à l'aide de la méthode Remove. Par exemple, vous pouvez déplacer les éléments d'une zone de liste vers une zone de liste déroulante au lieu de les copier. Pour déplacer un élément, ajoutez-le à la zone de liste déroulante, puis supprimez-le de la zone de liste.

Pour supprimer des éléments d'une zone de liste

  1. Ajoutez le code suivant au-dessus de l'instruction End If dans le gestionnaire d'événements ListBox_DoubleClick :

    Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
    
  2. Appuyez sur F5 pour exécuter le programme.

  3. Double-cliquez sur les éléments dans la zone de liste, puis vérifiez qu'ils ont été supprimés de la zone de liste et ajoutés à la zone de liste déroulante.

Étapes suivantes

Dans cette leçon, vous avez appris à ajouter des éléments aux listes et à les supprimer. Vous avez également appris à exécuter une action lorsqu'un utilisateur sélectionne un élément. Dans la leçon suivante, vous apprendrez à utiliser les contrôles qui affichent la date et l'heure.

Leçon suivante : Affichage de dates : utilisation des contrôles MonthCalendar et DateTimePicker

Voir aussi

Référence

Vue d'ensemble du contrôle ListBox (Windows Forms)

Vue d'ensemble du contrôle ComboBox (Windows Forms)

Autres ressources

Création de l'aspect visuel de votre programme : introduction aux Windows Forms