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ários dentro de um DataGridView controle. Dependendo das ações, você talvez 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, convém configurar o DataGridView controle para que clicar em qualquer lugar dentro de uma linha sempre selecione a linha inteira e para que apenas uma linha de cada vez possa ser selecionada.

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

Valor de DataGridViewSelectionMode 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. Cabeçalhos de coluna não podem ser usados para classificação.
FullColumnSelect Clicar em um cabeçalho de coluna ou célula seleciona a coluna inteira. Cabeçalhos de coluna não podem ser usados para classificação.
FullRowSelect Clicar em um cabeçalho de linha ou célula seleciona toda a linha.
RowHeaderSelect Modo de seleção padrão. Clicar em uma célula a seleciona. Clicar em um cabeçalho de linha seleciona toda a linha.

Observação

Alterar o modo de seleção em tempo de execução automaticamente limpa 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 para estender ou modificar uma seleção ou clicando na célula de cabeçalho do canto superior esquerdo para selecionar todas as células no controle. Para evitar esse comportamento, defina a MultiSelect propriedade como false.

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

Seleção programática

O modo de seleção atual restringe o comportamento de seleção programática, bem como a seleção do usuário. Você pode alterar a seleção atual programaticamente definindo a Selected propriedade de quaisquer células, linhas ou colunas presentes no DataGridView controle. Você também pode selecionar todas as células no controle por meio do método, dependendo do SelectAll 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 como true para um elemento remove automaticamente os outros elementos da seleção.

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

Você pode recuperar uma coleção de células, linhas ou colunas selecionadas no momento por meio SelectedCellsdas propriedades , SelectedRowse SelectedColumns do DataGridView controle. O acesso a essas propriedades é ineficiente quando todas as células no controle estão selecionadas. 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 , ou , GetRowCountpassando GetColumnCount o SelectedGetCellCountvalor.

Dica

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

Confira também