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
Version imprimable
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:
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:
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:
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