Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As tabelas a seguir descrevem como os utilizadores podem interagir com o controlo DataGridView por meio de um teclado e um rato.
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 os eventos do teclado não ocorrem para o DataGridView controle. Para manipular eventos de controle de edição, anexe seus manipuladores ao controle de edição em um EditingControlShowing manipulador de eventos. Como alternativa, pode personalizar o comportamento do teclado numa subclasse DataGridView ao substituir os métodos ProcessDialogKey e ProcessDataGridViewKey.
Gestão predefinida do teclado
Teclas básicas de navegação e entrada
| Chave ou combinação de teclas | 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 para a esquerda | Move o foco para a célula anterior na linha. Se o foco estiver na primeira célula da linha, então não faz nada. |
| Seta para a direita | Mover o foco para a célula seguinte na linha. Se o foco estiver na última célula da 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. |
| Início | Move o foco para a primeira célula da linha atual. |
| Fim | Move o foco para a última célula da linha atual. |
| Página abaixo | Rola o controle para baixo pelo número de linhas que são totalmente exibidas. Move o foco para a última linha totalmente exibida sem alterar as colunas. |
| Página acima | Rola o controle para cima pelo número de linhas que são totalmente exibidas. Move o foco para a primeira linha exibida sem alterar as colunas. |
| Separador | Se o valor da StandardTab propriedade for false, o foco será movido para a próxima célula na linha atual. Se o foco já 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 do controle, move o foco para o próximo controle na ordem de tabulação do contêiner pai.Se o valor da StandardTab propriedade for true, moverá o foco para o próximo controle na ordem de tabulação do contêiner pai. |
| Turno + Separador | Se o valor da propriedade StandardTab for false, o foco será movido para a célula anterior na linha atual. Se o foco já estiver na primeira célula da linha, move o foco para a última célula da linha anterior. Se o foco estiver na primeira célula do controle, move o foco para o controle anterior na ordem de tabulação do contêiner pai.Se o valor da StandardTab propriedade for true, moverá o foco para o controle anterior na ordem de tabulação do contêiner pai. |
| + CtrlSeparador | Se o valor da StandardTab propriedade for false, moverá o foco para o próximo controle na ordem de tabulação do contêiner pai.Se o valor da StandardTab propriedade for true, o foco será movido para a próxima célula na linha atual. Se o foco já 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 do controle, move o foco para o próximo controle na ordem de tabulação do contêiner pai. |
| + CtrlTurno + Separador | Se o valor da StandardTab propriedade for false, moverá o foco para o controle anterior na ordem de tabulação do contêiner pai.Se o valor da propriedade StandardTab for true, o foco será movido para a célula anterior na linha atual. Se o foco já estiver na primeira célula da linha, move o foco para a última célula da linha anterior. Se o foco estiver na primeira célula do controle, move o foco para o controle anterior na ordem de tabulação do contêiner pai. |
| + Ctrlseta | Move o foco para a célula mais distante na direção da seta. |
| Ctrl + Início | Mova o foco para a primeira célula no controle. |
| + CtrlFim | Move o foco para a última célula do controle. |
| + CtrlPágina para baixo/para cima | O mesmo que Page down ou Page up. |
| F2 | Coloca a célula corrente em modo de edição se o valor da propriedade EditMode for EditOnF2 ou EditOnKeystrokeOrF2. |
| F3 | Classifica a coluna atual se o valor da DataGridViewColumn.SortMode propriedade for Automatic. É o mesmo que clicar no cabeçalho da coluna atual. Disponível desde o .NET Framework 4.7.2. Para habilitar esse recurso, os aplicativos devem ter como destino o .NET Framework 4.7.2 ou versões posteriores ou optar explicitamente por melhorias de acessibilidade usando opções AppContext. |
| F4 | Se a célula atual for um DataGridViewComboBoxCell, coloca a célula no modo de edição e exibe a lista suspensa. |
| + AltSeta para cima/para baixo | Se a célula atual for um DataGridViewComboBoxCell, coloca a célula no modo de edição e exibe a lista suspensa. |
| Alt + Seta para a esquerda/direita | Aumenta ou diminui a largura da coluna da célula atual. |
| Espaço | Se a célula atual for um DataGridViewButtonCell, DataGridViewLinkCell, ou DataGridViewCheckBoxCell, gera os eventos CellClick e CellContentClick. Se a célula atual for um DataGridViewButtonCell, também pressiona o botão. Se a célula atual for um DataGridViewCheckBoxCell, também altera o estado de verificação. |
| Digite | Confirma quaisquer alterações na célula e linha atuais e move o foco para a célula diretamente abaixo da célula atual. Se o foco estiver na última fila, confirma as alterações sem mover o foco. |
| Esc | Se o controle estiver no modo de edição, cancelará a edição. Se o controle não estiver no modo de edição, reverte todas as alterações feitas na linha atual se o controle estiver vinculado a uma fonte de dados que ofereça suporte à edição ou se o modo virtual tiver sido implementado com escopo de confirmação em nível de linha. |
| Tecla retroceder | Exclui o caractere antes do ponto de inserção ao editar uma célula. |
| Eliminar | Exclui o caractere após o ponto de inserção ao editar uma célula. |
| + CtrlEntrar | Aplica quaisquer alterações na célula atual sem mudar o foco. Também confirma quaisquer alterações na linha atual se o controle estiver vinculado a uma fonte de dados que ofereça suporte à edição ou se o modo virtual tiver sido implementado com escopo de confirmação em nível de linha. |
| + Ctrl0 | Introduz um valor DBNull.Value na célula atual, caso esta possa ser editada. Por padrão, o valor de exibição de um DBNull é o valor da propriedade NullValue do DataGridViewCellStyle em vigor para a célula atual. |
Teclas de seleção
Se a MultiSelect propriedade estiver definida como false e a SelectionMode propriedade estiver definida como CellSelect, alterar a célula atual usando as teclas de navegação alterará a seleção para a nova célula. As teclas Shift, Ctrl e Alt não afetam esse comportamento.
Se o SelectionMode estiver definido como RowHeaderSelect ou ColumnHeaderSelect, o mesmo comportamento ocorre, mas com as seguintes adições.
| Chave ou combinação de teclas | Descrição |
|---|---|
| Shift + Barra de espaço | Seleciona a linha ou coluna completa (o mesmo que clicar no cabeçalho da linha ou coluna). |
| tecla de navegação (tecla de seta, Página para cima/baixo, Início, Fim) | Se uma linha ou coluna completa for selecionada, alterar a célula atual para uma nova linha ou coluna moverá a seleção para a nova linha ou coluna completa (dependendo do modo de seleção). |
Se MultiSelect estiver definido como false e SelectionMode estiver definido como FullRowSelect ou FullColumnSelect, alterar a célula atual para uma nova linha ou coluna usando o teclado move a seleção para a nova linha ou coluna completa. As teclas Shift, Ctrl e Alt não afetam esse comportamento.
Se MultiSelect estiver definido como true, o comportamento de navegação não será alterado, mas navegar com o teclado enquanto pressiona Shift (incluindo Ctrl + Shift) modificará uma seleção de várias células. Antes do início da navegação, o controle marca a célula atual como uma célula âncora. Quando você navega pressionando Shift, a seleção inclui todas as células entre a célula âncora e a célula atual. Outras células no controlo permanecerão selecionadas se já estiverem selecionadas, mas podem ficar não selecionadas se a navegação do teclado as colocar temporariamente entre a célula de âncora e a célula atual.
Se MultiSelect estiver definido como true e SelectionMode estiver definido como FullRowSelect ou FullColumnSelect, o comportamento da célula âncora e da célula atual será o mesmo, mas apenas linhas ou colunas inteiras serão selecionadas ou desmarcadas.
Manuseamento predefinido do rato
Manuseamento básico do rato
Observação
Clicar numa célula com o botão esquerdo do rato altera sempre a célula atual. Clicar numa célula com o botão direito do rato abre um menu de atalho, quando estiver disponível.
| Ação do mouse | Descrição |
|---|---|
| Botão esquerdo do rato para baixo | Torna a célula clicada a célula atual e gera o DataGridView.CellMouseDown evento. |
| Botão esquerdo do rato para cima | Levanta o DataGridView.CellMouseUp evento |
| Clique com o botão esquerdo do rato | Gera os eventos DataGridView.CellClick e DataGridView.CellMouseClick |
| Botão esquerdo do mouse para baixo e arraste sobre uma célula de cabeçalho de coluna | Se a DataGridView.AllowUserToOrderColumns propriedade for true, move a coluna, permitindo que esta seja largada noutra posição. |
Seleção do mouse
Nenhum comportamento de seleção está associado ao botão do meio do mouse ou à roda do mouse.
Se a MultiSelect propriedade estiver definida como false e a SelectionMode propriedade estiver definida como CellSelect, ocorrerá o seguinte comportamento.
| Ação do mouse | Descrição |
|---|---|
| Clique em | Seleciona apenas a célula atual se o utilizador clicar numa célula. Nenhum comportamento de seleção se o usuário clicar em um cabeçalho de linha ou coluna. |
| Clique com o botão direito do rato | Exibe um menu de atalho, se houver um disponível. |
O mesmo comportamento ocorre quando o SelectionMode é definido como RowHeaderSelect ou ColumnHeaderSelect, exceto que, dependendo do modo de seleção, clicar em um cabeçalho de linha ou coluna selecionará a linha ou coluna completa e definirá a célula atual para a primeira célula na linha ou coluna.
Se SelectionMode estiver definido como FullRowSelect ou FullColumnSelect, clicar em qualquer célula de uma linha ou coluna selecionará a linha ou coluna completa.
Se MultiSelect estiver definido como true, clicar em uma célula enquanto pressiona Ctrl ou Shift modificará uma seleção de várias células.
Quando você clica em uma célula enquanto pressiona Ctrl, a célula altera seu estado de seleção enquanto todas as outras células mantêm seu estado de seleção atual.
Quando você clica em uma célula ou em uma série de células enquanto pressiona Shift, a seleção inclui todas as células entre a célula atual e uma célula âncora localizada na posição da célula atual antes do primeiro clique. Quando você clica e arrasta o ponteiro através de várias células, a célula âncora é a célula clicada no início da operação de arrastar. Os cliques subsequentes ao pressionar Shift alteram a célula atual, mas não a célula âncora. Outras células no controle permanecerão selecionadas se já tiverem sido selecionadas, mas poderão ser desmarcadas se a navegação do mouse as colocar temporariamente entre a célula âncora e a célula atual.
Se MultiSelect estiver definido como true e SelectionMode estiver definido como RowHeaderSelect ou ColumnHeaderSelect, clicar em um cabeçalho de linha ou coluna (dependendo do modo de seleção) enquanto pressiona Shift modificará uma seleção existente de linhas ou colunas completas, se essa seleção existir. Caso contrário, ele limpará a seleção e iniciará uma nova seleção de linhas ou colunas completas. No entanto, clicar em um cabeçalho de linha ou coluna enquanto pressiona Ctrl adicionará ou removerá a linha ou coluna clicada da seleção atual sem modificar a seleção atual.
Se MultiSelect estiver definido como true e SelectionMode estiver definido como FullRowSelect ou FullColumnSelect, clicar em uma célula enquanto pressiona Shift ou Ctrl se comportará da mesma maneira, exceto que apenas linhas e colunas inteiras serão afetadas.
Ver também
.NET Desktop feedback