Lorsque je remplis un DataGridView avec des données, il y a toujours une ligne vide en bas. Comment puis-je désactiver cela ?
J'obtiens la ligne grise même si la propriété est définie de cette façon.
Lorsque je remplis un DataGridView avec des données, il y a toujours une ligne vide en bas. Comment puis-je désactiver cela ?
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;
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)
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 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.