Passer au contenu principal

Services Ads

VB.NET Corrigé TP01-04 Manipulation des contrôles ListBox et ComboBox

Pour créer une application avec des contrôles ListBox et ComboBox qui permet d’ajouter, de modifier et de supprimer des éléments, ainsi que de rechercher et trier, suivez les étapes ci-dessous :

Étape 1: Créer un nouveau projet Windows Forms

  1. Ouvrez Visual Studio
  2. Cliquez sur « Créer un nouveau projet »
  3. Sélectionnez « Application Windows Forms pour .NET » dans la liste des modèles
  4. Nommez votre projet « ListBoxComboBoxApp » et cliquez sur « Créer »

Étape 2: Concevoir l’interface utilisateur

  1. Faites glisser un contrôle ListBox, un contrôle ComboBox, 3 contrôles Button, un contrôle TextBox et un contrôle Label sur le formulaire
  2. Renommez les boutons « Ajouter », « Modifier » et « Supprimer »
  3. Modifiez les propriétés « Name » des contrôles pour faciliter leur référence dans le code (par exemple, « lstItems », « cmbItems », « btnAdd », « btnEdit », « btnDelete », « txtInput », « lblSearch »)

Étape 3: Écrire le code nécessaire pour un bon fonctionnement de cette application. 

Conception (design) :

vbnet-tp-listBox-comboBox
Votre code final devrait ressembler à ceci :
Public Class frmTP_ListBox_ComboBox
    
    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        Dim item As String = txtInput.Text.Trim
        Dim index As Integer = lstItems.FindStringExact(item)

        If index <> -1 Then
            lstItems.SelectedIndex = index
            txtInput.BackColor = Color.YellowGreen
        ElseIf Not String.IsNullOrEmpty(item) Then
            lstItems.Items.Add(item)
            cmbItems.Items.Add(item)
            txtInput.Clear()
        Else
            txtInput.BackColor = Color.Salmon
        End If
        txtInput.Focus()
    End Sub

    Private Sub txtInput_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtInput.TextChanged
        txtInput.BackColor = Color.White
    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
        Dim item As String = txtInput.Text.Trim
        Dim index = lstItems.SelectedIndex
        If index <> -1 Then
            lstItems.Items(index) = item
            cmbItems.Items(index) = item
        End If
    End Sub

    Private Sub lstItems_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstItems.SelectedIndexChanged
        txtInput.Text = lstItems.Text
    End Sub

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
        Dim index = lstItems.SelectedIndex
        Dim titre As String = "Attention"
        Dim message As String = "Êtes-vous sûr de vouloir supprimer l'élément que vous avez choisi ?"

        Dim msgIcon As MessageBoxIcon = MessageBoxIcon.Warning ' 48
        Dim msgBtn As MessageBoxButtons = MessageBoxButtons.YesNo ' 4

        If index <> -1 AndAlso MessageBox.Show(message, titre, msgBtn, msgIcon) = vbYes Then
            lstItems.Items.RemoveAt(index)
            cmbItems.Items.RemoveAt(index)
        End If
    End Sub

    Private Sub btnSort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSort.Click
        lstItems.Sorted = True
        cmbItems.Sorted = True
    End Sub

    Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        Dim searchTerm As String = txtInput.Text.Trim
        Dim index As Integer = lstItems.FindStringExact(searchTerm)

        If index <> -1 Then
            lstItems.SetSelected(index, True)
            cmbItems.SelectedIndex = index
            lblSearch.Text = "On a trouvé l'élément à la position :" & index + 1
        Else
            lblSearch.Text = "L'élément n'est pas trouvé !!"
        End If
    End Sub
End Class

Notez que ce code est juste un exemple et qu’il peut être amélioré pour prendre en compte des erreurs de l’utilisateur et d’autres fonctionnalités avancées.