Bonjour,
J'ai un datagridview qui est en lien avec un formulaire.
J'aimerai pouvoir supprimer avec un bouton les lignes vides de mon datagridview.
Merci pour votre aide
Bonjour,
J'ai un datagridview qui est en lien avec un formulaire.
J'aimerai pouvoir supprimer avec un bouton les lignes vides de mon datagridview.
Merci pour votre aide
Salut,
tu peux simplement faire le parcours des DataGridViewRow et quand tu tombes sur une ligne qui n'a pas de valeur pour une colonne définie tu la supprime. Attention toutefois à la ligne d'ajout à la fin si tu as positionné AllowUserToAddRows à true.
Bon dev.
Bonjour,
Merci pour ta réponse,
Mais concrètement, comment je fais le parcours des DataGridViewRow vides ?
Débutant en Vb et connaissant un peu le vba, j'ai pensé à écrire cela :
Mais évidement, cela ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim i As Integer For i = 0 To 500 If DataGridView1.Item(0, i).Value = "" And DataGridView1.Item(1, i).Value = "" And DataGridView1.Item(2, i).Value = "" Then DataGridView1.Row(i).Remove(DataGridView1.CurrentRow) End if Next
Merci de ton aide.
cdt
Pense à utiliser les balises CODE pour que tes extraits de code soient plus lisibles
Alors pour le parcour des Row tu peux pas simplement faire une boucle de 0 à n, car tu ne sais pas si n est ton max. Tu peux soit récupérer ta borne max via l'attribut Count de la collection de Rows, soit utiliser un foreach. Exemple en C# :
edit : un exemple en VB.NET, qui utilise l'indexeur nommé pour changer (mais tu peux utiliser un index comme au-dessus si tu préfères) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // dgvMem : mon instance de DataGridView // ma deuxième colonne est discriminante (cf. Cells[1]) foreach (DataGridViewRow row in dgvMem.Rows) if (row.Cells[1].Value.ToString() == "") dgvMem.Rows.Remove(row);
Bon dev.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each row As DataGridViewRow In dgvMem.Rows If row.Cells.Item("lastname").Value.ToString = "" Then dgvMem.Rows.Remove(row) End If Next
Super.
Merci bcp pour ton aide.
Cdt
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager