Padrão de teclado e Mouse Handling in Windows Forms DataGridView Control
As tabelas a seguintes descrevem como os usuários podem interagir com o DataGridView controle através de um teclado e mouse.
Observação |
---|
Para personalizar o comportamento do teclado, você pode manipular eventos de teclado padrão, como KeyDown. No modo de edição, no entanto, o controle de edição hospedado recebe a entrada do teclado e não ocorrem os eventos de teclado para o DataGridView de controle. Para manipular eventos de controle de edição, anexar seus manipuladores para o controle de edição em um EditingControlShowing manipulador de eventos. Como alternativa, você pode personalizar o comportamento do teclado em uma DataGridView subclasse, substituindo o ProcessDialogKey e ProcessDataGridViewKey métodos. |
Manipulação de teclado padrão
Teclas de navegação e entrada básicas
Tecla ou combinação de |
Descrição |
---|---|
SETA PARA BAIXO |
Move o foco para a célula diretamente abaixo da célula atual. Se o foco estiver na última linha, não faz nada. |
SETA À ESQUERDA |
Move o foco para a célula anterior na linha. Se o foco estiver na primeira célula na linha, não faz nada. |
SETA À DIREITA |
Move o foco para a próxima célula na linha. Se o foco estiver na última célula na linha, não faz nada. |
SETA PARA CIMA |
Move o foco para a célula diretamente acima da célula atual. Se o foco estiver na primeira linha, não faz nada. |
HOME |
Move o foco para a primeira célula na linha atual. |
END |
Move o foco para a última célula na linha atual. |
PAGE DOWN |
Rola para baixo, o controle pelo número de linhas que são totalmente exibidos. Move o foco para a última linha exibida totalmente sem alterar as colunas. |
PAGE UP |
Rola o controle para cima pelo número de linhas que são totalmente exibidos. Move o foco para a primeira linha exibida sem alterar as colunas. |
TAB |
Se o StandardTab valor da propriedade é false, move o foco para a próxima célula na linha atual. Se o foco estiver na última célula da linha, move o foco para a primeira célula na linha seguinte. Se o foco estiver na última célula no controle, move o foco para o próximo controle na ordem de tabulação do recipiente pai. Se o StandardTab valor da propriedade é true, move o foco para o próximo controle na ordem de tabulação do recipiente pai. |
SHIFT + TAB |
Se o StandardTab valor da propriedade é false, move o foco para a célula anterior na linha atual. Se o foco estiver na primeira célula da linha, move o foco para a última célula na linha anterior. Se o foco estiver na primeira célula no controle, move o foco para o controle anterior na ordem de tabulação do recipiente pai. Se o StandardTab valor da propriedade é true, move o foco para o controle anterior na ordem de tabulação do recipiente pai. |
CTRL + TAB. |
Se o StandardTab valor da propriedade é false, move o foco para o próximo controle na ordem de tabulação do recipiente pai. Se o StandardTab valor da propriedade é true, move o foco para a próxima célula na linha atual. Se o foco estiver na última célula da linha, move o foco para a primeira célula na linha seguinte. Se o foco estiver na última célula no controle, move o foco para o próximo controle na ordem de tabulação do recipiente pai. |
CTRL + SHIFT + TAB. |
Se o StandardTab valor da propriedade é false, move o foco para o controle anterior na ordem de tabulação do recipiente pai. Se o StandardTab valor da propriedade é true, move o foco para a célula anterior na linha atual. Se o foco estiver na primeira célula da linha, move o foco para a última célula na linha anterior. Se o foco estiver na primeira célula no controle, move o foco para o controle anterior na ordem de tabulação do recipiente pai. |
CTRL + SETA. |
Move o foco para a célula mais distante na direção da seta. |
CTRL + HOME |
Move o foco para a primeira célula no controle. |
CTRL + END |
Move o foco para a última célula no controle. |
CTRL + PAGE DOWN/UP. |
Mesmo que PAGE DOWN ou PAGE UP. |
F2 |
Coloca a célula atual em modo de edição da célula, se o EditMode valor da propriedade é EditOnF2 ou EditOnKeystrokeOrF2. |
F4 |
Se a célula atual for uma DataGridViewComboBoxCell, coloca a célula em modo de edição e exibe a lista drop-down. |
ALT + SETA PARA CIMA / BAIXO |
Se a célula atual for uma DataGridViewComboBoxCell, coloca a célula em modo de edição e exibe a lista drop-down. |
Espaço |
Se a célula atual for uma DataGridViewButtonCell, DataGridViewLinkCell, ou DataGridViewCheckBoxCell, eleva a CellClick e CellContentClick eventos. Se a célula atual for uma DataGridViewButtonCell, também pressiona o botão. Se a célula atual for uma DataGridViewCheckBoxCell, também altera o estado de seleção. |
ENTER |
Confirma as alterações para a célula atual e a linha e move o foco para a célula diretamente abaixo da célula atual. Se o foco estiver na última linha, confirma as alterações sem mover o foco. |
ESC |
Se o controle estiver no modo de edição, cancela a edição. Se o controle não estiver no modo de edição, reverte quaisquer alterações que foram feitas para a linha atual se o controle está vinculado a uma fonte de dados que ofereça suporte a edição ou modo virtual foi implementado com o escopo de confirmação de nível de linha. |
BACKSPACE |
Exclui o caractere antes do ponto de inserção ao editar uma célula. |
DELETE |
Exclui o caractere após o ponto de inserção ao editar uma célula. |
CTRL+ENTER |
Confirma as alterações para a célula atual sem mover o foco. Também confirma as alterações para a linha atual se o controle está vinculado a uma fonte de dados que suporta o modo de edição ou virtual foi implementada com nível de linha escopo de confirmação. |
CTRL + 0 |
Insere um DBNull.Value valor para a célula atual, se a célula pode ser editada. Por padrão, a exibição do valor para um DBNull o valor de célula é o valor da NullValue propriedade da DataGridViewCellStyle em vigor para a célula atual. |
Chaves de seleção
Se o MultiSelect for definida como false e o SelectionMode for definida como CellSelect, alterando a célula atual usando as alterações de teclas de navegação a seleção para a nova célula. O SHIFT, CTRL e ALT chaves não afetam esse comportamento.
Se o SelectionMode é definida como RowHeaderSelect ou ColumnHeaderSelect, o mesmo comportamento ocorre, mas com as seguintes adições.
Tecla ou combinação de |
Descrição |
---|---|
SHIFT + BARRA DE ESPAÇOS |
Seleciona a linha ou coluna inteira (o mesmo que clicar no cabeçalho de linha ou coluna). |
chave de navegação (tecla de seta, página superiores/inferiores, HOME, END) |
Se uma linha ou coluna inteira estiver selecionada, alterando a célula atual para uma nova linha ou coluna move a seleção para o total de nova linha ou coluna (dependendo do modo de seleção). |
Se MultiSelect for definido como false e SelectionMode for definido como FullRowSelect ou FullColumnSelect, alterando a célula atual para uma nova linha ou coluna usando o teclado move a seleção completa de nova linha ou coluna. O SHIFT, CTRL e ALT chaves não afetam esse comportamento.
Se MultiSelect for definido como true, não altera o comportamento de navegação, mas a navegação com o teclado enquanto pressiona a tecla SHIFT (incluindo CTRL + SHIFT) irá modificar uma seleção de fórmulas. Antes de inicia a navegação, o controle marca a célula atual como uma célula de âncora. Quando você navegar enquanto pressiona a tecla SHIFT, a seleção inclui todas as células entre a célula de âncora e a célula atual. Outras células no controle permanecerá selecionadas se eles já foram selecionados, mas eles podem se tornar não selecionados se a navegação do teclado coloca temporariamente entre a célula de âncora e a célula atual.
Se MultiSelect for definido como true e SelectionMode for definido como FullRowSelect ou FullColumnSelect, o comportamento da célula de âncora e a célula atual é o mesmo, mas apenas completas linhas ou colunas se tornam marcadas ou desmarcadas.
Manipulação de Mouse padrão
Manipulação básica do Mouse
Observação |
---|
Clicar uma célula com o botão esquerdo do mouse sempre altera a célula atual. Clicando em uma célula com o botão direito do mouse abre um menu de atalho, quando disponível. |
Ação do mouse |
Descrição |
---|---|
Botão esquerdo do mouse para baixo |
Torna a célula clicada a célula atual e eleva o DataGridView.CellMouseDown de evento. |
Botão esquerdo do mouse para cima |
Eleva o DataGridView.CellMouseUp eventos |
Clique do botão esquerdo do mouse |
Eleva o DataGridView.CellClick e DataGridView.CellMouseClick eventos |
O botão esquerdo do mouse pressionado e arraste em uma célula de cabeçalho de coluna |
Se o DataGridView.AllowUserToOrderColumns é a propriedade true, que move a coluna para que ele pode ser descartado em uma nova posição. |
Seleção de mouse
Nenhum comportamento de seleção está associado com o botão do meio do mouse ou a roda do mouse.
Se o MultiSelect for definida como false e o SelectionMode for definida como CellSelect, ocorre o seguinte comportamento.
Ação do mouse |
Descrição |
---|---|
Clique o botão esquerdo do mouse |
Seleciona apenas a célula atual, se o usuário clica em uma célula. Nenhum comportamento de seleção se o usuário clica em um cabeçalho de linha ou coluna. |
Clique o botão direito do mouse |
Exibe um menu de atalho, se houver uma disponível. |
O mesmo comportamento ocorre quando o SelectionMode é definida como RowHeaderSelect ou ColumnHeaderSelect, exceto que, dependendo do modo de seleção, clicar em um cabeçalho de linha ou coluna irá selecionar a linha ou coluna inteira e defina a célula atual para a primeira célula na linha ou coluna.
Se SelectionMode for definido como FullRowSelect ou FullColumnSelect, clicando em qualquer célula em uma linha ou coluna irá selecionar a linha de total ou de coluna.
Se MultiSelect for definido como true, clicando em uma célula enquanto pressionando CTRL ou SHIFT irá modificar uma seleção de fórmulas.
Quando você clica em uma célula, a tecla CTRL Pressionada, a célula alterar o estado de seleção enquanto todas as outras células mantêm o estado da seleção atual.
Quando você clica em uma célula ou uma série de células enquanto pressiona a tecla SHIFT, a seleção inclui todas as células entre a célula atual e uma célula de âncora localizado na posição da célula atual antes do primeiro clique. Quando você clica e arrasta o ponteiro por várias células, a célula de âncora é a célula clicada no início da operação de arrastar. Cliques subseqüentes ao pressionar SHIFT altera a célula atual, mas não a célula de âncora. Outras células no controle permanecerá selecionadas se eles já foram selecionados, mas eles podem se tornar não selecionados se a navegação de mouse coloca temporariamente entre a célula de âncora e a célula atual.
Se MultiSelect for definido como true e SelectionMode for definido como RowHeaderSelect ou ColumnHeaderSelect, clicar em um cabeçalho de linha ou coluna (dependendo do modo de seleção), enquanto pressiona a tecla SHIFT modificará uma seleção existente de linhas inteiras ou se uma seleção de colunas existe. Caso contrário, ele limpa a seleção e iniciar uma nova seleção de completas linhas ou colunas. A tecla CTRL Pressionada, clicar em um cabeçalho de linha ou coluna, no entanto, irá adicionar ou remover a coluna ou linha clicada da seleção atual sem caso contrário, modificando a seleção atual.
Se MultiSelect for definido como true e SelectionMode for definido como FullRowSelect ou FullColumnSelect, clicando em uma célula enquanto pressiona a tecla SHIFT ou CTRL se comporta da mesma forma, exceto que completa somente linhas e colunas são afetadas.