68 votes

Comment supprimer la ligne vide en bas d'un contrôle DataGridView ?

Lorsque je remplis un DataGridView avec des données, il y a toujours une ligne vide en bas. Comment puis-je désactiver cela ?

123voto

Cody Gray Points 102261

Oui, il y aura toujours une ligne vide au bas d'un fichier DataGridView . Il permet à l'utilisateur d'ajouter de nouvelles données au moment de l'exécution ; il lui suffit de commencer à taper la nouvelle ligne.

Pour le désactiver, vous devrez également empêcher l'utilisateur d'ajouter de nouvelles lignes. Pour ce faire, définissez l'attribut AllowUserToAddRows propriété de votre DataGridView sur Faux :

myDataGridView.AllowUserToAddRows = false;

3 votes

J'obtiens la ligne grise même si la propriété est définie de cette façon.

0 votes

Définir ensuite sa visibilité à false si la ligne est vide

1 votes

Je déteste vraiment ce comportement. Il ajoute une entrée vide à mon DataSource . Il n'y a aucun moyen de savoir si l'utilisateur a validé une ligne ( UserAddedRow ne se produit que lorsque l'utilisateur utilise cette ligne vierge)

2voto

Julia Points 35

Si vous avez des problèmes avec ceci dans WPF, ajoutez :

CanUserAddRows="False"

Vers les propriétés de la grille de données souhaitée dans XAML.

0voto

dajaco81 Points 61

Si CanUserAddRows="False" mais vous obtenez toujours une ligne fantôme lorsque vous faites défiler l'écran vers le bas.

Réponse courte : ajoutez 3px à la ligne DataGridView.Height pour tenir compte de la frontière.

Si vous avez réglé la hauteur du DataGridView sur exactement rows * rowHeight il se passe quelque chose d'amusant.

La bordure ajoute de la hauteur :

1px pour none !

3px pour SingleFixed (par défaut)

De ce fait, la rangée inférieure ne s'ajuste pas complètement.

Étant donné que seuls 99 % de la ligne inférieure sont visibles, il crée une autre ligne en dessous pour afficher les 1 % restants en haut et l'espace vide en dessous, ce qui donne l'illusion de la création d'une nouvelle ligne.

La solution est d'ajouter les 1px ou 3px pour ajuster parfaitement les rangées - ainsi il n'y aura plus de défilement :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X