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 true
e 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
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de