Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As tabelas a seguir descrevem como os usuários podem interagir com o DataGridView controle por meio de um teclado e um mouse.
Observação
Para personalizar o comportamento do teclado, você pode lidar com 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 de teclado não ocorrem para o DataGridView controle. Para lidar com eventos de controle de edição, anexe seus manipuladores ao controle de edição em um EditingControlShowing manipulador de eventos. Como alternativa, você pode personalizar o comportamento do teclado em uma subclasse DataGridView substituindo os métodos ProcessDialogKey e ProcessDataGridViewKey.
Manipulação de teclado padrão
Chaves básicas de navegação e entrada
| Tecla 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 fará 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, não fará nada. |
| Seta para a direita | Move o foco para a próxima célula na linha. Se o foco estiver na última célula da linha, não fará 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 fará nada. |
| Início | Move o foco para a primeira célula na linha atual. |
| Fim | Move o foco para a última célula na linha atual. |
| Página para baixo | Rola o controle para baixo pelo número de linhas totalmente exibidas. Move o foco para a última linha totalmente exibida sem alterar colunas. |
| Página para cima | 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 colunas. |
| Guia | Se o valor da StandardTab propriedade for false, mova o foco para a próxima célula na linha atual. Se o foco já estiver na última célula da linha, mova o foco para a primeira célula na próxima linha. Se o foco estiver na última célula no controle, moverá o foco para o próximo controle na ordem de tabulação do contêiner pai.Se o valor da propriedade StandardTab for true, move o foco para o próximo controle na ordem de tabulação do contêiner pai. |
| Turno + Guia | Se o valor da propriedade StandardTab for false, move o foco para a célula imediatamente à esquerda na linha atual. Se o foco já estiver na primeira célula da linha, mova o foco para a última célula na linha anterior. Se o foco estiver na primeira célula no controle, moverá o foco para o controle anterior na ordem de tabulação do contêiner pai.Se o valor da propriedade StandardTab for true, mova o foco para o controle anterior na ordem de tabulação do contêiner pai. |
| Ctrl + Guia | Se o valor da propriedade StandardTab for false, 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, mova o foco para a próxima célula na linha atual. Se o foco já estiver na última célula da linha, mova o foco para a primeira célula na próxima linha. Se o foco estiver na última célula no controle, moverá o foco para o próximo controle na ordem de tabulação do contêiner pai. |
| Ctrl + Turno + Guia | Se o valor da propriedade StandardTab for false, mova o foco para o controle anterior na ordem de tabulação do contêiner pai.Se o valor da propriedade StandardTab for true, move o foco para a célula imediatamente à esquerda na linha atual. Se o foco já estiver na primeira célula da linha, mova o foco para a última célula na linha anterior. Se o foco estiver na primeira célula no controle, moverá o foco para o controle anterior na ordem de tabulação do contêiner pai. |
| Ctrl + flecha | Mova o foco para a célula mais distante na direção indicada pela seta. |
| Ctrl + Casa | Move o foco para a primeira célula no controle. |
| Ctrl + Fim | Move o foco para a última célula do controle. |
| Ctrl + Página para baixo/para cima | O mesmo que page down ou Page up. |
| F2 | Coloca a célula atual 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 comutadores AppContext. |
| F4 | 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 cima/seta 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 em questão. |
| Espaço | Se a célula atual for um DataGridViewButtonCell, DataGridViewLinkCell ou DataGridViewCheckBoxCell, gerará os CellClick e CellContentClick eventos. Se a célula atual for um DataGridViewButtonCell, pressione também o botão. Se a célula atual for uma DataGridViewCheckBoxCell, altera também o estado de verificação. |
| Entrar | Confirma qualquer alteração na célula e linha atual e move o foco para a célula diretamente abaixo da célula atual. Se o foco estiver na última linha, confirmará 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 quaisquer alterações feitas na linha atual se o controle estiver associado a uma fonte de dados que dê suporte à edição ou se o modo virtual tiver sido implementado com escopo de confirmação no nível de linha. |
| Backspace | Exclui o caractere antes do ponto de inserção ao editar uma célula. |
| excluir | Exclui o caractere após o ponto de inserção ao editar uma célula. |
| CTRL + ENTER | Confirma as alterações na célula atual sem mover o foco. Também confirma as alterações na linha atual se o controle estiver associado a uma fonte de dados que dá suporte à edição ou o modo virtual foi implementado com escopo de confirmação no nível de linha. |
| CTRL + 0 | Insere um valor DBNull.Value na célula atual, caso possa ser editada. Por padrão, o valor exibido de uma célula DBNull é o valor da propriedade NullValue do DataGridViewCellStyle aplicado à célula atual. |
Chaves de seleção
Se a propriedade MultiSelect estiver definida como false e a propriedade SelectionMode 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 for SelectionMode definido como RowHeaderSelect ou ColumnHeaderSelect, o mesmo comportamento ocorrerá, mas com as adições a seguir.
| Tecla 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 de linha ou coluna). |
| tecla de navegação (seta, Página para cima/para baixo, Página Inicial, Fim) | Se uma linha ou coluna completa estiver 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, ao alterar a célula atual para uma nova linha ou coluna usando o teclado, a seleção mover-se-á 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 mudará, 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 de âncora. Quando você navega ao pressionar 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ão selecionadas se já estiverem selecionadas, mas poderão ser 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 de âncora e da célula atual será o mesmo, mas apenas linhas e colunas completas podem ser selecionadas ou desmarcadas.
Manipulação padrão do mouse
Manipulação básica do mouse
Observação
Clicar em uma célula com o botão esquerdo do mouse sempre altera a célula atual. Clicar em uma célula com o botão direito do mouse abre um menu de atalho quando um estiver 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 aciona o DataGridView.CellMouseDown evento. |
| Botão esquerdo do mouse para cima | Aciona o DataGridView.CellMouseUp evento |
| Clique no botão esquerdo do mouse | Aciona os DataGridView.CellClick e DataGridView.CellMouseClick eventos |
| Pressione e segure o botão esquerdo do mouse e arraste sobre a célula do cabeçalho da coluna | Se a DataGridView.AllowUserToOrderColumns propriedade for true, mova a coluna para que ela possa ser movida para uma nova posição. |
Seleção do mouse
Nenhum comportamento de seleção está associado ao botão do mouse do meio ou à roda do mouse.
Se a propriedade MultiSelect estiver definida como false e a propriedade SelectionMode estiver definida como CellSelect, o seguinte comportamento ocorrerá.
| Ação do mouse | Descrição |
|---|---|
| Clique | Seleciona apenas a célula atual se o usuário clicar em uma 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 em | Exibe um menu de atalho se um estiver 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 como a primeira célula na linha ou coluna.
Se SelectionMode estiver definido como FullRowSelect ou FullColumnSelect, clicar em qualquer célula em uma linha ou coluna selecionará a linha ou coluna completa.
Se MultiSelect estiver definido como true, clicar em uma célula ao pressionar 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 o estado de seleção atual.
Quando você clica em uma célula ou em uma série de células ao pressionar Shift, a seleção inclui todas as células entre a célula atual e uma célula de âncora localizada na posição da célula atual antes do primeiro clique. Quando você clica e arrasta o ponteiro entre várias células, a célula de â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 de âncora. Outras células no controle permanecerão selecionadas se já estiverem selecionadas, mas poderão ser não selecionadas se a navegação do mouse 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 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 inteiras, se tal seleção existir. Caso contrário, ele limpará a seleção e iniciará uma nova seleção de linhas ou colunas completas. Clicar em um cabeçalho de linha ou coluna ao pressionar Ctrl, no entanto, adicionará ou removerá a linha ou coluna clicada da seleção atual sem modificar a seleção atual de outra forma.
Se MultiSelect estiver definido para true e SelectionMode estiver definido para FullRowSelect ou FullColumnSelect, clicar em uma célula enquanto pressiona Shift ou Ctrl se comporta da mesma maneira, exceto que apenas linhas e colunas completas são afetadas.
Consulte também
.NET Desktop feedback