DataGridView.ProcessDialogKey(Keys) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Traite certaines touches, telles que Tab, Entrée, Échap et les touches de direction, utilisées pour contrôler les boîtes de dialogue.
protected:
override bool ProcessDialogKey(System::Windows::Forms::Keys keyData);
protected override bool ProcessDialogKey (System.Windows.Forms.Keys keyData);
override this.ProcessDialogKey : System.Windows.Forms.Keys -> bool
Protected Overrides Function ProcessDialogKey (keyData As Keys) As Boolean
Paramètres
- keyData
- Keys
Combinaison d’opérations de bits de valeurs Keys qui représente la ou les touches à traiter.
Retours
true
si la touche a été traitée ; sinon, false
.
Exceptions
La touche activée provoque l’entrée du contrôle en mode d’édition, mais la propriété EditType de la cellule active n’indique pas une classe qui dérive de Control et implémente IDataGridViewEditingControl.
Cette opération permet de valider une valeur de cellule ou d’activer le mode édition, mais une erreur dans la source de données bloque l’opération : soit il n’existe aucun gestionnaire pour l’événement DataError, soit le gestionnaire a défini la propriété ThrowException sur true
.
Exemples
L’exemple de code suivant montre comment modifier le comportement de la clé ENTER dans une DataGridView sous-classe en remplaçant les ProcessDataGridViewKey méthodes et ProcessDialogKey . Dans l’exemple, la touche ENTRÉE a le même comportement que la flèche droite, ce qui permet à un utilisateur de modifier plus facilement plusieurs cellules dans une seule ligne de données.
public class CustomDataGridView : DataGridView
{
protected override bool ProcessDialogKey(Keys keyData)
{
// Extract the key code from the key value.
Keys key = (keyData & Keys.KeyCode);
// Handle the ENTER key as if it were a RIGHT ARROW key.
if (key == Keys.Enter)
{
return this.ProcessRightKey(keyData);
}
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
// Handle the ENTER key as if it were a RIGHT ARROW key.
if (e.KeyCode == Keys.Enter)
{
return this.ProcessRightKey(e.KeyData);
}
return base.ProcessDataGridViewKey(e);
}
}
Public Class CustomDataGridView
Inherits DataGridView
<System.Security.Permissions.UIPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, _
Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
Protected Overrides Function ProcessDialogKey( _
ByVal keyData As Keys) As Boolean
' Extract the key code from the key value.
Dim key As Keys = keyData And Keys.KeyCode
' Handle the ENTER key as if it were a RIGHT ARROW key.
If key = Keys.Enter Then
Return Me.ProcessRightKey(keyData)
End If
Return MyBase.ProcessDialogKey(keyData)
End Function
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Protected Overrides Function ProcessDataGridViewKey( _
ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean
' Handle the ENTER key as if it were a RIGHT ARROW key.
If e.KeyCode = Keys.Enter Then
Return Me.ProcessRightKey(e.KeyData)
End If
Return MyBase.ProcessDataGridViewKey(e)
End Function
End Class
Remarques
Cette méthode est appelée en mode édition pour gérer l’entrée au clavier qui n’est pas gérée par le contrôle d’édition hébergé.
Si une touche est déterminée comme n’étant pas une touche d’entrée, elle est envoyée à la classe de base pour traitement.
Notes pour les héritiers
Lors du remplacement de cette méthode, un contrôle doit revenir true
pour indiquer qu’il a traité la clé. Pour les clés qui ne sont pas traitées par le contrôle, retournez le résultat de la version de base de cette méthode.