Comportement du clavier et de la souris par défaut avec le contrôle DataGridView

Les tableaux suivants décrivent comment les utilisateurs peuvent interagir avec le DataGridView contrôle via un clavier et une souris.

Remarque

Pour personnaliser le comportement du clavier, vous pouvez gérer des événements de clavier standard tels que KeyDown. En mode Édition, toutefois, le contrôle d’édition hébergé reçoit l’entrée du clavier et les événements de clavier ne se produisent pas pour le DataGridView contrôle. Pour gérer la modification des événements de contrôle, attachez vos gestionnaires au contrôle d’édition dans un gestionnaire d’événements EditingControlShowing . Vous pouvez également personnaliser le comportement du clavier dans une DataGridView sous-classe en remplaçant les méthodes et ProcessDataGridViewKey les ProcessDialogKey méthodes.

Gestion du clavier par défaut

Touches de navigation et d’entrée de base

Touche ou combinaison de touches Description
Flèche bas Déplace le focus sur la cellule directement sous la cellule active. Si le focus se trouve dans la dernière ligne, ne fait rien.
Flèche gauche Déplace le focus sur la cellule précédente de la ligne. Si le focus se trouve dans la première cellule de la ligne, ne fait rien.
Flèche droite Déplace le focus sur la cellule suivante de la ligne. Si le focus se trouve dans la dernière cellule de la ligne, ne fait rien.
Flèche haut Déplace le focus sur la cellule directement au-dessus de la cellule active. Si le focus se trouve dans la première ligne, ne fait rien.
Accueil Déplace le focus sur la première cellule de la ligne active.
End Déplace le focus vers la dernière cellule de la ligne active.
Page vers le bas Fait défiler le contrôle vers le bas en fonction du nombre de lignes qui sont entièrement affichées. Déplace le focus sur la dernière ligne entièrement affichée sans modifier les colonnes.
Page vers le haut Fait défiler le contrôle vers le haut par le nombre de lignes qui sont entièrement affichées. Déplace le focus sur la première ligne affichée sans modifier les colonnes.
Tab Si la valeur de la StandardTab propriété est false, déplace le focus sur la cellule suivante de la ligne active. Si le focus se trouve déjà dans la dernière cellule de la ligne, déplace le focus sur la première cellule de la ligne suivante. Si le focus se trouve dans la dernière cellule du contrôle, déplace le focus sur le contrôle suivant dans l’ordre de tabulation du conteneur parent.

Si la StandardTab valeur de la propriété est true, déplace le focus sur le contrôle suivant dans l’ordre de tabulation du conteneur parent.
Maj + Tab Si la valeur de StandardTab la propriété est false, déplace le focus sur la cellule précédente de la ligne active. Si le focus se trouve déjà dans la première cellule de la ligne, déplace le focus sur la dernière cellule de la ligne précédente. Si le focus se trouve dans la première cellule du contrôle, déplace le focus sur le contrôle précédent dans l’ordre de tabulation du conteneur parent.

Si la StandardTab valeur de la propriété est true, déplace le focus sur le contrôle précédent dans l’ordre de tabulation du conteneur parent.
Ctrl + Tab Si la StandardTab valeur de la propriété est false, déplace le focus sur le contrôle suivant dans l’ordre de tabulation du conteneur parent.

Si la valeur de la StandardTab propriété est true, déplace le focus sur la cellule suivante de la ligne active. Si le focus se trouve déjà dans la dernière cellule de la ligne, déplace le focus sur la première cellule de la ligne suivante. Si le focus se trouve dans la dernière cellule du contrôle, déplace le focus sur le contrôle suivant dans l’ordre de tabulation du conteneur parent.
Ctrl + Maj + Tab Si la StandardTab valeur de la propriété est false, déplace le focus sur le contrôle précédent dans l’ordre de tabulation du conteneur parent.

Si la valeur de StandardTab la propriété est true, déplace le focus sur la cellule précédente de la ligne active. Si le focus se trouve déjà dans la première cellule de la ligne, déplace le focus sur la dernière cellule de la ligne précédente. Si le focus se trouve dans la première cellule du contrôle, déplace le focus sur le contrôle précédent dans l’ordre de tabulation du conteneur parent.
Flèche Ctrl + Déplace le focus vers la cellule la plus éloignée dans la direction de la flèche.
Ctrl + Début Déplace le focus sur la première cellule du contrôle.
Ctrl + Fin Déplace le focus sur la dernière cellule du contrôle.
Ctrl + Page vers le bas/haut Identique à Page vers le bas ou Page vers le haut.
F2 Place la cellule active en mode d’édition de cellule si la valeur de la EditMode propriété est EditOnF2 ou EditOnKeystrokeOrF2.
F3 Trie la colonne actuelle si la valeur de la DataGridViewColumn.SortMode propriété est Automatic. Il s’agit du même que de cliquer sur l’en-tête de colonne actuel. Disponible depuis la version 4.7.2 de .NET Framework. Pour activer cette fonctionnalité, les applications doivent cibler .NET Framework 4.7.2 ou versions ultérieures ou choisir explicitement d’améliorer l’accessibilité à l’aide de commutateurs AppContext.
F4 Si la cellule active est une DataGridViewComboBoxCellcellule, place la cellule en mode d’édition et affiche la liste déroulante.
Alt + Vers le haut/vers le bas Si la cellule active est une DataGridViewComboBoxCellcellule, place la cellule en mode d’édition et affiche la liste déroulante.
Alt Gauche + /Droite Augmente ou diminue la largeur de la colonne de la cellule actuelle.
Space Si la cellule active est une DataGridViewButtonCellcellule , DataGridViewLinkCellou DataGridViewCheckBoxCell, déclenche les événements et CellContentClick les CellClick événements. Si la cellule active est une DataGridViewButtonCellcellule active, appuie également sur le bouton. Si la cellule active est une DataGridViewCheckBoxCellcellule, change également l’état case activée.
Entrée Valide les modifications apportées à la cellule active et à la ligne et déplace le focus vers la cellule directement sous la cellule active. Si le focus se trouve dans la dernière ligne, valide les modifications sans déplacer le focus.
Échap Si le contrôle est en mode édition, annule la modification. Si le contrôle n’est pas en mode édition, rétablit les modifications apportées à la ligne actuelle si le contrôle est lié à une source de données qui prend en charge la modification ou le mode virtuel a été implémenté avec l’étendue de validation au niveau des lignes.
Retour arrière Supprime le caractère avant le point d’insertion lors de la modification d’une cellule.
Supprimer Supprime le caractère après le point d’insertion lors de la modification d’une cellule.
Ctrl + Entrée Valide les modifications apportées à la cellule active sans déplacer le focus. Valide également les modifications apportées à la ligne actuelle si le contrôle est lié à une source de données qui prend en charge la modification ou le mode virtuel a été implémenté avec l’étendue de validation au niveau des lignes.
Ctrl + 0 Entre une DBNull.Value valeur dans la cellule active si la cellule peut être modifiée. Par défaut, la valeur d’affichage d’une DBNull valeur de cellule est la valeur de la NullValue propriété de la DataGridViewCellStyle cellule active.

Touches de sélection

Si la MultiSelect propriété est définie false et que la SelectionMode propriété est définie CellSelectsur , la modification de la cellule active à l’aide des touches de navigation modifie la sélection vers la nouvelle cellule. Les touches Maj, Ctrl et Alt n’affectent pas ce comportement.

Si la SelectionMode valeur est définie RowHeaderSelect ou ColumnHeaderSelect, le même comportement se produit mais avec les ajouts suivants.

Touche ou combinaison de touches Description
Maj + Espace Sélectionne la ligne ou la colonne complète (identique au fait de cliquer sur l’en-tête de ligne ou de colonne).
touche de navigation (touche de direction, Page vers le haut/bas, Accueil, Fin) Si une ligne ou une colonne complète est sélectionnée, la modification de la cellule active en une nouvelle ligne ou colonne déplace la sélection vers la nouvelle ligne ou colonne complète (en fonction du mode de sélection).

Si MultiSelect elle est définie sur et SelectionMode est définie FullRowSelectfalse sur ouFullColumnSelect, en modifiant la cellule active en une nouvelle ligne ou colonne à l’aide du clavier déplace la sélection vers la nouvelle ligne ou colonne complète. Les touches Maj, Ctrl et Alt n’affectent pas ce comportement.

S’il MultiSelect est défini truesur , le comportement de navigation ne change pas, mais la navigation avec le clavier tout en appuyant sur Maj (y compris Ctrl + Maj) modifie une sélection à plusieurs cellules. Avant le début de la navigation, le contrôle marque la cellule active comme cellule d’ancrage. Lorsque vous naviguez en appuyant sur Maj, la sélection inclut toutes les cellules entre la cellule d’ancrage et la cellule active. Les autres cellules du contrôle restent sélectionnées si elles ont déjà été sélectionnées, mais elles peuvent ne pas être sélectionnées si la navigation au clavier les place temporairement entre la cellule d’ancrage et la cellule active.

Si MultiSelect elle est définie true sur et SelectionMode est définie FullRowSelect sur ou FullColumnSelect, le comportement de la cellule d’ancrage et de la cellule active est le même, mais seules les lignes ou colonnes complètes deviennent sélectionnées ou non sélectionnées.

Gestion de la souris par défaut

Gestion de base de la souris

Remarque

Cliquer sur une cellule avec le bouton gauche de la souris modifie toujours la cellule active. Le fait de cliquer sur une cellule avec le bouton droit de la souris ouvre un menu contextuel, lorsqu’une cellule est disponible.

Action de la souris Description
Bouton gauche de la souris vers le bas Effectue le clic sur la cellule active et déclenche l’événement DataGridView.CellMouseDown .
Bouton gauche de la souris vers le haut Déclenche l'événement DataGridView.CellMouseUp.
Cliquez sur le bouton gauche de la souris Déclenche les événements et DataGridView.CellMouseClick les DataGridView.CellClick événements
Bouton gauche de la souris vers le bas et faire glisser sur une cellule d’en-tête de colonne Si la DataGridView.AllowUserToOrderColumns propriété est true, déplace la colonne afin qu’elle puisse être supprimée dans une nouvelle position.

Sélection de la souris

Aucun comportement de sélection n’est associé au bouton central de la souris ou à la roulette de la souris.

Si la MultiSelect propriété est définie false et que la SelectionMode propriété est définie CellSelectsur , le comportement suivant se produit.

Action de la souris Description
Cliquez Sélectionne uniquement la cellule active si l’utilisateur clique sur une cellule. Aucun comportement de sélection si l’utilisateur clique sur une ligne ou un en-tête de colonne.
Cliquez avec le bouton droit sur Affiche un menu contextuel si un menu contextuel est disponible.

Le même comportement se produit lorsque la SelectionMode valeur est définie RowHeaderSelect ou ColumnHeaderSelect, sauf que, selon le mode de sélection, le fait de cliquer sur une ligne ou un en-tête de colonne sélectionne la ligne ou la colonne complète et définit la cellule active sur la première cellule de la ligne ou de la colonne.

Si SelectionMode la valeur est définie FullRowSelect ou FullColumnSelect, en cliquant sur une cellule d’une ligne ou d’une colonne, sélectionnez la ligne ou la colonne complète.

Si MultiSelect la valeur est définie true, cliquez sur une cellule en appuyant sur Ctrl ou Maj pour modifier une sélection à plusieurs cellules.

Lorsque vous cliquez sur une cellule en appuyant sur Ctrl, la cellule modifie son état de sélection tandis que toutes les autres cellules conservent leur état de sélection actuel.

Lorsque vous cliquez sur une cellule ou une série de cellules en appuyant sur Maj, la sélection inclut toutes les cellules entre la cellule active et une cellule d’ancrage située à la position de la cellule active avant le premier clic. Lorsque vous cliquez et faites glisser le pointeur sur plusieurs cellules, la cellule d’ancrage est la cellule cliquée au début de l’opération de glisser. Les clics suivants lors de l’appui sur Maj modifient la cellule active, mais pas la cellule d’ancrage. Les autres cellules du contrôle restent sélectionnées si elles ont déjà été sélectionnées, mais elles peuvent devenir désélectionnées si la navigation de la souris les place temporairement entre la cellule d’ancrage et la cellule active.

Si MultiSelect elle est définie true sur et SelectionMode est définie RowHeaderSelect sur ou ColumnHeaderSelect, en cliquant sur un en-tête de ligne ou de colonne (selon le mode de sélection) tout en appuyant sur Maj , vous modifiez une sélection existante de lignes ou de colonnes complètes si une telle sélection existe. Sinon, il efface la sélection et démarre une nouvelle sélection de lignes ou de colonnes complètes. En cliquant sur une ligne ou un en-tête de colonne en appuyant sur Ctrl, toutefois, ajoutez ou supprimez la ligne ou la colonne cliquée de la sélection actuelle sans modifier la sélection actuelle.

Si MultiSelect elle est définie true sur et SelectionMode est définie FullRowSelect sur ou FullColumnSelect, cliquer sur une cellule en appuyant sur Maj ou Ctrl se comporte de la même façon, sauf que seules les lignes et colonnes complètes sont affectées.

Voir aussi