Passer au contenu principal

Services Ads

VB.NET Corrigé TP01-05 Formulaire avec DataGridView interactif

Exemple de formulaire Visual Basic .NET avec DataGridView et fonctionnalités d’ajout, modification, suppression et recherche de données

DataGridView et fonctionnalités d’ajout, modification, suppression et recherche de données

  1. Créez un nouveau formulaire dans votre projet Visual Basic .NET.
  2. Ajoutez les éléments suivants au formulaire :
    • 3 labels pour afficher les libellés des champs (par exemple, lblNum, lblNom, lblEmail)
    • 4 champs TextBox pour la saisie des données (par exemple, txtNum, txtNom, txtEmail, txtRecherche)
    • 4 boutons pour les actions (par exemple, btnAjouter, btnModifier, btnSupprimer, btnRechercher)
    • 1 DataGridView pour afficher les données (par exemple, dgvUsers)
  3. Dans le gestionnaire d’événement `Form_Load`, ajoutez le code suivant :
    • Définissez les titres des colonnes du DataGridView en utilisant la propriété `Columns.Name` pour chaque colonne (par exemple, « Num », « Nom », « Email »).
    • Définissez le mode de sélection du DataGridView sur `DataGridViewSelectionMode.FullRowSelect` pour sélectionner la ligne entière lors d’un clic.
  4. Déclarez les méthodes suivantes dans votre formulaire :
    • `ViderChamps()`: Cette méthode doit vider les champs de saisie en réinitialisant le texte des TextBox à une chaîne vide.
    • `AjouterLigne()`: Cette méthode doit ajouter une nouvelle ligne au DataGridView en utilisant les valeurs saisies dans les TextBox.
    • `ModifierLigne()`: Cette méthode doit modifier la ligne sélectionnée dans le DataGridView en mettant à jour les valeurs des cellules avec les données saisies dans les TextBox.
    • `SupprimerLigne()`: Cette méthode doit supprimer la ligne sélectionnée du DataGridView.
    • `Rechercher()`: Cette méthode doit effectuer une recherche dans le DataGridView en comparant les valeurs des cellules avec la valeur saisie dans TextBoxRecherche.
  5. Dans les gestionnaires d’événements des boutons :
    • `btnAjouter_Click`: Appelez la méthode `AjouterLigne()` pour ajouter une nouvelle ligne.
    • `btnModifier_Click`: Appelez la méthode `ModifierLigne()` pour modifier la ligne sélectionnée.
    • `btnSupprimer_Click`: Appelez la méthode `SupprimerLigne()` pour supprimer la ligne sélectionnée.
    • `btnRechercher_Click`: Appelez la méthode `Rechercher()` pour effectuer une recherche.
  6. Dans le gestionnaire d’événement `DataGridView_SelectionChanged` :
    • Vérifiez si une ligne est sélectionnée dans le DataGridView.
    • Si une ligne est sélectionnée, récupérez les valeurs des cellules correspondantes et affichez-les dans les TextBox correspondants.

Assurez-vous d’implémenter ces étapes dans votre projet Visual Basic .NET pour créer le formulaire avec les fonctionnalités d’ajout, de modification, de suppression et de recherche dans le DataGridView.

Conception (design) :

DataGridView et fonctionnalités d'ajout, modification, suppression et recherche de données
Votre code final devrait ressembler à ceci :

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.

Imports System.Text.RegularExpressions

Public Class frmTP8_DataGridView
    ' Méthode pour vider les champs de saisie
    Private Sub ViderChamps()
        txtNum.Text = ""
        txtNom.Text = ""
        txtEmail.Text = ""
    End Sub

    ' Méthode pour ajouter une ligne dans le DataGridView
    Private Sub AjouterLigne()
        ' Afficher un message en fonction du résultat de la validation
        If Not isEmailValid(txtEmail.Text) Then
            
            MessageBox.Show("Adresse e-mail invalide.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtEmail.Focus()
            Return
        End If

        Dim row As String() = {txtNum.Text, txtNom.Text, txtEmail.Text}
        dgvUsers.Rows.Add(row)
        ViderChamps()
    End Sub

    ' Méthode pour modifier une ligne dans le DataGridView
    Private Sub ModifierLigne()
        If dgvUsers.SelectedCells.Count > 0 Then
            Dim rowIndex As Integer = dgvUsers.SelectedCells(0).RowIndex
            dgvUsers.Rows(rowIndex).Cells(0).Value = txtNum.Text
            dgvUsers.Rows(rowIndex).Cells(1).Value = txtNom.Text
            dgvUsers.Rows(rowIndex).Cells(2).Value = txtEmail.Text
            ViderChamps()
        End If
    End Sub

    ' Méthode pour supprimer une ligne du DataGridView
    Private Sub SupprimerLigne()
        'If MessageBox.Show("Supprimer"
        If dgvUsers.SelectedCells.Count > 0 Then
            Dim rowIndex As Integer = dgvUsers.SelectedCells(0).RowIndex
            dgvUsers.Rows.RemoveAt(rowIndex)
            ViderChamps()
        End If
    End Sub

    ' Méthode pour effectuer une recherche dans le DataGridView
    Private Sub Rechercher()
        Dim valeurRecherchee As String = txtRecherche.Text.ToLower()

        For Each row As DataGridViewRow In dgvUsers.Rows
            For Each cell As DataGridViewCell In row.Cells
                If cell.Value IsNot Nothing AndAlso cell.Value.ToString().ToLower() = valeurRecherchee Then
                    cell.Selected = True
                    dgvUsers.CurrentCell = cell
                    Exit Sub
                End If
            Next
        Next

        MessageBox.Show("Aucun résultat trouvé pour la recherche.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub


    ' Événement déclenché lors du clic sur le bouton "Rechercher"
    Private Sub btnRecherche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecherche.Click
        Rechercher()
    End Sub

    ' Événement déclenché lors du clic sur le bouton "Ajouter"
    Private Sub btnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAjouter.Click
        AjouterLigne()
    End Sub

    ' Événement déclenché lors du clic sur le bouton "Modifier"
    Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click
        ModifierLigne()
    End Sub

    ' Événement déclenché lors du clic sur le bouton "Supprimer"
    Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click
        SupprimerLigne()
    End Sub

    ' Afficher les valeurs de la ligne sélectionnée dans les champs de saisie
    Private Sub dgvUsers_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvUsers.CellClick
        If dgvUsers.SelectedRows.Count >= 0 Then
            Dim numLigne As Integer = dgvUsers.SelectedCells(0).RowIndex
            txtNum.Text = dgvUsers.Rows(numLigne).Cells(0).Value
            txtNom.Text = dgvUsers.Rows(numLigne).Cells(1).Value
            txtEmail.Text = dgvUsers.Rows(numLigne).Cells(2).Value
        End If

    End Sub

    Private Sub frmDataGridView_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Définir les titres des colonnes du DataGridView
        dgvUsers.ColumnCount = 3
        dgvUsers.Columns(0).Name = "Num"
        dgvUsers.Columns(1).Name = "Nom"
        dgvUsers.Columns(2).Name = "Email"

        ' Définir le mode de sélection pour une ligne entière
        dgvUsers.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        dgvUsers.AllowUserToAddRows = False
        dgvUsers.EditMode = DataGridViewEditMode.EditProgrammatically
    End Sub

    'Private Sub dgvUsers_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgvUsers.SelectionChanged
    '    If dgvUsers.SelectedRows.Count > 0 Then
    '        Dim selectedRow As DataGridViewRow = dgvUsers.SelectedRows(0)
    '        txtNum.Text = selectedRow.Cells("Num").Value.ToString()
    '        txtNom.Text = selectedRow.Cells("Nom").Value.ToString()
    '        txtEmail.Text = selectedRow.Cells("Email").Value.ToString()
    '    End If
    'End Sub

    Function isEmailValid(ByVal email As String)

        ' Vérifier si l'e-mail est valide en utilisant une expression régulière
        Dim pattern As String = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"

        Return Regex.IsMatch(email, pattern)
        ' Afficher un message en fonction du résultat de la validation
        'If isEmailValid Then
        '    MessageBox.Show("Adresse e-mail valide.")
        'Else
        '    MessageBox.Show("Adresse e-mail invalide.")
        'End If
    End Function
End Class