Partager via


Utilisation de la ligne pour les nouveaux enregistrements dans le contrôle DataGridView Windows Forms

Lorsque vous utilisez un DataGridView pour modifier des données dans votre application, vous souhaiterez souvent donner à vos utilisateurs la possibilité d’ajouter de nouvelles lignes de données au magasin de données. Le DataGridView contrôle prend en charge cette fonctionnalité en fournissant une ligne pour les nouveaux enregistrements, qui est toujours affichée comme la dernière ligne. Il est marqué avec un symbole astérisque (*) dans son en-tête de ligne. Les sections suivantes décrivent certaines des choses à prendre en compte lorsque vous programmez la ligne pour les nouveaux enregistrements activés.

Affichage de la ligne pour les nouveaux enregistrements

Utilisez la AllowUserToAddRows propriété pour indiquer si la ligne des nouveaux enregistrements est affichée. La valeur par défaut de cette propriété est true.

Pour le cas lié aux données, la ligne des nouveaux enregistrements s’affiche si la AllowUserToAddRows propriété du contrôle et la IBindingList.AllowNew propriété de la source de données sont les deux true. Si l’une ou l’autre est false la ligne ne s’affiche pas.

Remplissage de la ligne pour les nouveaux enregistrements avec des données par défaut

Lorsque l’utilisateur sélectionne la ligne des nouveaux enregistrements comme ligne active, le DataGridView contrôle déclenche l’événement DefaultValuesNeeded .

Cet événement permet d’accéder au nouveau DataGridViewRow et vous permet de remplir la nouvelle ligne avec des données par défaut. Pour plus d’informations, consultez Comment : spécifier des valeurs par défaut pour les nouvelles lignes dans le contrôle DataGridView Windows Forms

The Rows Collection

La ligne des nouveaux enregistrements est contenue dans la DataGridView collection du Rows contrôle, mais se comporte différemment à deux égards :

  • La ligne des nouveaux enregistrements ne peut pas être supprimée de la Rows collection par programmation. Une InvalidOperationException exception est levée si elle est tentée. L’utilisateur ne peut pas également supprimer la ligne des nouveaux enregistrements. La DataGridViewRowCollection.Clear méthode ne supprime pas cette ligne de la Rows collection.

  • Aucune ligne ne peut être ajoutée après la ligne des nouveaux enregistrements. Un InvalidOperationException élément est déclenché si cela est tenté. Par conséquent, la ligne des nouveaux enregistrements est toujours la dernière ligne du DataGridView contrôle. Méthodes sur DataGridViewRowCollection cet ajout de lignes ,AddAddCopy et AddCopiestoutes les méthodes d’insertion d’appel en interne lorsque la ligne des nouveaux enregistrements est présente.

Personnalisation visuelle de la ligne pour les nouveaux enregistrements

Lorsque la ligne des nouveaux enregistrements est créée, elle est basée sur la ligne spécifiée par la RowTemplate propriété. Tous les styles de cellule qui ne sont pas spécifiés pour cette ligne sont hérités d’autres propriétés. Pour plus d’informations sur l’héritage de style de cellule, consultez Styles de cellule dans le contrôle DataGridView Windows Forms.

Les valeurs initiales affichées par les cellules de la ligne pour les nouveaux enregistrements sont récupérées à partir de la propriété de DefaultNewRowValue chaque cellule. Pour les cellules de type DataGridViewImageCell, cette propriété retourne une image d’espace réservé. Sinon, cette propriété retourne null. Vous pouvez remplacer cette propriété pour retourner une valeur personnalisée. Toutefois, ces valeurs initiales peuvent être remplacées par un gestionnaire d’événements DefaultValuesNeeded lorsque le focus entre dans la ligne des nouveaux enregistrements.

Les icônes standard de l’en-tête de cette ligne, qui sont une flèche ou un astérisque, ne sont pas exposées publiquement. Si vous souhaitez personnaliser les icônes, vous devez créer une classe personnalisée DataGridViewRowHeaderCell .

Les icônes standard utilisent la ForeColor propriété de la DataGridViewCellStyle cellule d’en-tête de ligne utilisée. Les icônes standard ne sont pas affichées s’il n’y a pas suffisamment d’espace pour les afficher complètement.

Si la cellule d’en-tête de ligne a une valeur de chaîne définie et s’il n’y a pas suffisamment de place pour le texte et l’icône, l’icône est supprimée en premier.

Tri

En mode indépendant, de nouveaux enregistrements seront toujours ajoutés à la fin de l’utilisateur DataGridView même si l’utilisateur a trié le contenu du DataGridViewfichier . L’utilisateur doit appliquer à nouveau le tri pour trier la ligne à la position correcte ; ce comportement est similaire à celui du ListView contrôle.

Dans les modes liés aux données et virtuels, le comportement d’insertion lorsqu’un tri est appliqué dépend de l’implémentation du modèle de données. Pour ADO.NET, la ligne est immédiatement triée en position correcte.

Autres notes sur la ligne pour les nouveaux enregistrements

Vous ne pouvez pas définir la Visible propriété de cette ligne sur false. Un InvalidOperationException élément est déclenché si cela est tenté.

La ligne des nouveaux enregistrements est toujours créée dans l’état non sélectionné.

Mode virtuel

Si vous implémentez le mode virtuel, vous devez suivre quand une ligne pour les nouveaux enregistrements est nécessaire dans le modèle de données et quand restaurer l’ajout de la ligne. L’implémentation exacte de cette fonctionnalité dépend de l’implémentation du modèle de données et de sa sémantique de transaction, par exemple, si l’étendue de validation est au niveau de la cellule ou de la ligne. Pour plus d’informations, consultez Le mode virtuel dans le contrôle DataGridView Windows Forms.

Voir aussi