DataGridView.ProcessDialogKey(Keys) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Processa teclas como as teclas TAB, ESCAPE, ENTER e SETA, usadas para controlar as caixas de diálogo.
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
Parâmetros
Devoluções
true se a chave foi processada; caso contrário, false.
Exceções
A tecla pressionada faria o controlo entrar em modo de edição, mas a EditType propriedade da célula atual não indica uma classe que derive de Control e implemente IDataGridViewEditingControl.
Esta ação comprometeria um valor de célula ou entraria em modo de edição, mas um erro na fonte de dados impede a ação e ou não existe um handler para o DataError evento ou o handler definiu a ThrowException propriedade para true.
Exemplos
O seguinte exemplo de código demonstra como alterar o comportamento da tecla ENTER numa DataGridView subclasse sobrescrevendo os ProcessDataGridViewKey métodos e.ProcessDialogKey No exemplo, a tecla ENTER tem o mesmo comportamento da tecla DIREITA, facilitando ao utilizador a edição de múltiplas células numa única linha de dados.
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
Observações
Este método é chamado em modo de edição para tratar a entrada do teclado que não é tratada pelo controlo de edição alojado.
Se uma pressão de tecla for determinada como não sendo uma tecla de entrada, será enviada para a classe base para processamento.
Notas para Herdeiros
Ao sobrescrever este método, um controlo deve regressar true para indicar que processou a chave. Para chaves que não são processadas pelo controlo, devolva o resultado da versão base deste método.