Partager via


Modes de sélection dans le contrôle DataGridView Windows Forms

Vous pouvez souhaiter que votre application effectue des actions basées sur des sélections d'utilisateur dans un contrôle DataGridView. Suivant ces actions, vous pouvez souhaiter restreindre les types de sélection possibles. Supposons par exemple que votre application peut imprimer un rapport pour l'enregistrement actuellement sélectionné. Dans ce cas, vous pouvez configurer le contrôle DataGridView pour qu'il suffise de cliquer n'importe où dans une ligne pour la sélectionner tout entière, et pour qu'une seule ligne puisse être sélectionnée à la fois.

Vous pouvez spécifier les sélections autorisées en donnant à la propriété DataGridView.SelectionMode l'une des valeurs d'énumération DataGridViewSelectionMode suivantes.

Valeur DataGridViewSelectionMode

Description

CellSelect

Cliquer sur une cellule la sélectionne. Les en-têtes de ligne et de colonne ne peuvent pas être utilisés pour la sélection.

ColumnHeaderSelect

Cliquer sur une cellule la sélectionne. Cliquer sur un en-tête de colonne sélectionne la colonne entière. Les en-têtes de colonne ne peuvent pas être utilisés pour le tri.

FullColumnSelect

Cliquer sur une cellule ou sur un en-tête de colonne sélectionne la colonne entière. Les en-têtes de colonne ne peuvent pas être utilisés pour le tri.

FullRowSelect

Cliquer sur une cellule ou sur un en-tête de ligne sélectionne la ligne entière.

RowHeaderSelect

Mode de sélection par défaut. Cliquer sur une cellule la sélectionne. Cliquer sur un en-tête de ligne sélectionne la ligne entière.

Notes

Changer de 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 la souris, en appuyant sur CTRL ou MAJ pour étendre ou modifier une sélection, ou en cliquant sur la cellule d'en-tête située à l'angle supérieur gauche pour sélectionner toutes les cellules du contrôle. Pour empêcher ce comportement, donnez à la propriété MultiSelect la valeur false.

Les modes FullRowSelect et RowHeaderSelect permettent aux utilisateurs de supprimer des lignes en les sélectionnant et appuyant sur la touche SUPPR. Les utilisateurs peuvent supprimer des lignes uniquement lorsque la cellule active n'est pas en mode édition, la propriété AllowUserToDeleteRows a la valeur true, et la source de données sous-jacente prend en charge la suppression de ligne conduite par utilisateur. Notez que ces paramètres n'empêchent pas suppression de ligne par programmation.

Sélection par programmation

Le mode de sélection actuel restreint le comportement de sélection par programmation ainsi que la sélection utilisateur. Vous pouvez changer la sélection actuelle par programme en définissant la propriété Selected de toute cellule, ligne ou colonne présente dans le contrôle DataGridView. Vous pouvez également sélectionner toutes les cellules dans le contrôle à l'aide de la méthode SelectAll, suivant le mode de sélection. Pour effacer la sélection, utilisez la méthode ClearSelection.

Si la propriété MultiSelect a la valeur true, vous pouvez ajouter ou supprimer des éléments DataGridView dans la sélection en modifiant la propriété Selected de l'élément. Sinon, donner à la propriété Selected la valeur true pour un élément supprime automatiquement les autres éléments de la sélection.

Notez que la modification de la valeur de la propriété CurrentCell ne modifie pas la sélection actuelle.

Vous pouvez récupérer une collection des cellules, lignes ou colonnes actuellement sélectionnées par l'intermédiaire des propriétés SelectedCells, SelectedRows et SelectedColumns du contrôle DataGridView. L'accès à ces propriétés est inefficace si toutes les cellules du contrôle sont sélectionnées. Pour éviter une baisse des performances dans ce cas, utilisez d'abord la méthode AreAllCellsSelected. En outre, accéder à ces collections pour déterminer le nombre de cellules, lignes ou colonnes sélectionnées peut être inefficace. À la place, utilisez la méthode GetCellCount, GetRowCount ou GetColumnCount, en passant la valeur Selected.

Conseil

L'exemple de code qui illustre l'utilisation par programmation des cellules sélectionnées peut être consulté dans la vue d'ensemble de la classe DataGridView.

Voir aussi

Tâches

Comment : définir le mode de sélection du contrôle DataGridView Windows Forms

Référence

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

Autres ressources

Sélection et utilisation du Presse-papiers avec le contrôle DataGridView Windows Forms