Modes de sélection dans le contrôle DataGridView Windows Forms
Parfois, vous souhaitez que votre application effectue des actions en fonction des sélections utilisateur au sein d’un DataGridView contrôle. Selon les actions, vous pouvez restreindre les types de sélection possibles. Par exemple, supposons que votre application puisse imprimer un rapport pour l’enregistrement actuellement sélectionné. Dans ce cas, vous pouvez configurer le DataGridView contrôle afin que le clic n’importe où dans une ligne sélectionne toujours l’intégralité de la ligne, et de sorte qu’une seule ligne à la fois puisse être sélectionnée.
Vous pouvez spécifier les sélections autorisées en définissant la DataGridView.SelectionMode propriété sur l’une des valeurs d’énumération suivantes DataGridViewSelectionMode .
Valeur DataGridViewSelectionMode | Description |
---|---|
CellSelect | Cliquez sur une cellule pour la sélectionner. Les en-têtes de ligne et de colonne ne peuvent pas être utilisés pour la sélection. |
ColumnHeaderSelect | Cliquez sur une cellule pour la sélectionner. Cliquez sur un en-tête de colonne pour sélectionner l’intégralité de la colonne. Les en-têtes de colonne ne peuvent pas être utilisés pour le tri. |
FullColumnSelect | Cliquez sur une cellule ou un en-tête de colonne pour sélectionner l’intégralité de la colonne. Les en-têtes de colonne ne peuvent pas être utilisés pour le tri. |
FullRowSelect | Cliquer sur une cellule ou un en-tête de ligne sélectionne la ligne entière. |
RowHeaderSelect | Mode de sélection par défaut. Cliquez sur une cellule pour la sélectionner. Cliquer sur un en-tête de ligne sélectionne la ligne entière. |
Remarque
La modification du mode de sélection au moment de l’exécution efface automatiquement la sélection actuelle.
Par défaut, les utilisateurs peuvent sélectionner plusieurs lignes, colonnes ou cellules en faisant glisser avec la souris, en appuyant sur Ctrl ou Maj lors de la sélection pour étendre ou modifier une sélection, ou en cliquant sur la cellule d’en-tête en haut à gauche pour sélectionner toutes les cellules du contrôle. Pour empêcher ce comportement, définissez la MultiSelect propriété sur false
.
Les FullRowSelect modes RowHeaderSelect permettent aux utilisateurs de supprimer des lignes en les sélectionnant et en appuyant sur la touche DELETE. Les utilisateurs peuvent supprimer des lignes uniquement lorsque la cellule active n’est pas en mode édition, la AllowUserToDeleteRows propriété est définie true
sur , et la source de données sous-jacente prend en charge la suppression de lignes pilotée par l’utilisateur. Notez que ces paramètres n’empêchent pas la suppression de ligne par programmation.
Sélection programmatique
Le mode de sélection actuel limite le comportement de la sélection programmatique, ainsi que la sélection de l’utilisateur. Vous pouvez modifier la sélection actuelle par programmation en définissant la Selected
propriété de toutes les cellules, lignes ou colonnes présentes dans le DataGridView contrôle. Vous pouvez également sélectionner toutes les cellules du contrôle via la SelectAll méthode, en fonction du mode de sélection. Pour effacer la sélection, utilisez la ClearSelection méthode.
Si la MultiSelect propriété est définie true
sur , vous pouvez ajouter DataGridView ou supprimer des éléments de la sélection en modifiant la Selected
propriété de l’élément. Sinon, la définition de la Selected
propriété pour true
un élément supprime automatiquement d’autres éléments de la sélection.
Notez que la modification de la valeur de la CurrentCell propriété ne modifie pas la sélection actuelle.
Vous pouvez récupérer une collection des cellules, lignes ou colonnes actuellement sélectionnées via le SelectedCellsSelectedRowscontrôle et SelectedColumns les propriétés du DataGridView contrôle. L’accès à ces propriétés est inefficace lorsque chaque cellule du contrôle est sélectionnée. Pour éviter une pénalité de performances dans ce cas, utilisez d’abord la AreAllCellsSelected méthode. En outre, l’accès à ces collections pour déterminer le nombre de cellules, de lignes ou de colonnes sélectionnées peut être inefficace. Au lieu de cela, vous devez utiliser la méthode , GetRowCountou GetColumnCount la GetCellCountméthode, en passant la Selected valeur.
Conseil
Vous trouverez un exemple de code qui illustre l’utilisation programmatique de cellules sélectionnées dans la vue d’ensemble de la DataGridView classe.
Voir aussi
.NET Desktop feedback
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour