Compartilhar via


Modos de seleção no controle DataGridView dos Windows Forms

Às vezes, você deseja que seu aplicativo execute ações com base em seleções de usuário dentro de um DataGridView controle. Dependendo das ações, talvez você queira restringir os tipos de seleção possíveis. Por exemplo, suponha que seu aplicativo possa imprimir um relatório para o registro selecionado no momento. Nesse caso, talvez você queira configurar o DataGridView controle para que clicar em qualquer lugar dentro de uma linha sempre selecione toda a linha e, portanto, apenas uma linha por vez possa ser selecionada.

Você pode especificar as seleções permitidas definindo a DataGridView.SelectionMode propriedade como um dos seguintes DataGridViewSelectionMode valores de enumeração.

DataGridViewSelectionMode: Valor Descrição
CellSelect Clicar em uma célula a seleciona. Cabeçalhos de linha e coluna não podem ser usados para seleção.
ColumnHeaderSelect Clicar em uma célula a seleciona. Clicar em um cabeçalho de coluna seleciona a coluna inteira. Os cabeçalhos de coluna não podem ser usados para classificação.
FullColumnSelect Clicar em uma célula ou um cabeçalho de coluna seleciona a coluna inteira. Os cabeçalhos de coluna não podem ser usados para classificação.
FullRowSelect Clicar em uma célula ou um cabeçalho de linha seleciona a linha inteira.
RowHeaderSelect Modo de seleção padrão. Clicar em uma célula a seleciona. Clicar em um cabeçalho de linha seleciona a linha inteira.

Observação

Alterar o modo de seleção em tempo de execução limpa automaticamente a seleção atual.

Por padrão, os usuários podem selecionar várias linhas, colunas ou células arrastando com o mouse, pressionando CTRL ou SHIFT ao selecionar estender ou modificar uma seleção ou clicando na célula de cabeçalho superior esquerda para selecionar todas as células no controle. Para evitar esse comportamento, defina a MultiSelect propriedade como false.

Os modos FullRowSelect e RowHeaderSelect permitem que os usuários excluam linhas selecionando-as e pressionando a tecla DELETE. Os usuários só podem excluir linhas quando a célula atual não está no modo de edição, a AllowUserToDeleteRows propriedade é definida como , e a fonte de dados subjacente dá suporte à trueexclusão de linha controlada pelo usuário. Observe que essas configurações não impedem a exclusão de linha via programação.

Seleção Programática

O modo de seleção atual restringe o comportamento da seleção programática, bem como a seleção do usuário. Você pode alterar a seleção atual programaticamente definindo a propriedade de todas as Selected células, linhas ou colunas presentes no DataGridView controle. Você também pode selecionar todas as células no controle por meio do SelectAll método, dependendo do modo de seleção. Para limpar a seleção, use o ClearSelection método.

Se a MultiSelect propriedade estiver definida como true, você poderá adicionar DataGridView elementos ou removê-los da seleção alterando a Selected propriedade do elemento. Caso contrário, configurar a propriedade Selected para true em um elemento remove automaticamente outros elementos da seleção.

Observe que alterar o valor da CurrentCell propriedade não altera a seleção atual.

Você pode recuperar uma coleção das células, linhas ou colunas selecionadas no momento através das propriedades SelectedCells, SelectedRows e SelectedColumns do controle DataGridView. Acessar essas propriedades é ineficiente quando cada célula no controle é selecionada. Para evitar uma penalidade de desempenho nesse caso, use o AreAllCellsSelected método primeiro. Além disso, acessar essas coleções para determinar o número de células, linhas ou colunas selecionadas pode ser ineficiente. Em vez disso, você deve usar o método GetCellCount, GetRowCount ou GetColumnCount, passando o valor Selected.

Dica

Código de exemplo que demonstra o uso programático de células selecionadas pode ser encontrado na visão geral da DataGridView classe.

Consulte também