Compartilhar via


Opções no Windows Forms DataGridView controle de dimensionamento

DataGridView linhas, colunas e cabeçalhos podem alterar dimensionar sistema autônomo resultado de muitas ocorrências diferentes. A tabela a seguir mostra essas ocorrências.

Ocorrência

Descrição

redimensionar de usuário

Os usuários podem fazer ajustes de dimensionar, arrastando ou clicando duas vezes em divisores de linha, coluna ou cabeçalho.

Controle de redimensionar

No modo de preenchimento da coluna, alterar larguras de coluna quando a largura do controle é alterado; por exemplo, quando o controle está encaixado para seu formulário pai e o usuário redimensiona o formulário.

alterar de valor da célula

Nos modos de dimensionamento automático com base em conteúdo, tamanhos de alterar para ajuste os novos valores de exibição.

telefonar de método

Redimensionamento através de programação baseado em conteúdo permite fazer ajustes oportunista dimensionar com base nos valores de célula no momento da telefonar do método.

Configuração da propriedade

Você também pode conjunto a altura específica e valores de largura.

Por padrão, o redimensionamento do usuário estiver habilitado, dimensionamento automático desabilitado e valores de célula mais largas do que as colunas são recortadas.

A tabela a seguir mostra cenários que você pode usar para ajustar o comportamento padrão ou usar opções de tamanho específico para obter efeitos específicos.

Cenário

Implementação

Usar modo de preenchimento de coluna para exibir tamanho da mesma forma dados em um número relativamente pequeno de colunas que ocupar toda a largura do controle sem exibir a BAR de rolar horizontal.

Defina a propriedade AutoSizeColumnsMode como Fill.

Usar o modo preenchimento de coluna com exibem valores de tamanhos variados.

Defina a propriedade AutoSizeColumnsMode como Fill.Inicializar larguras de coluna relativa por configuração a coluna FillWeight propriedades ou ligando o controle AutoResizeColumns método depois de preencher o controle com dados.

Usa o modo de preenchimento da coluna com valores de variáveis de importância.

Defina a propriedade AutoSizeColumnsMode como Fill.conjunto grande MinimumWidth valores para as colunas que devem sempre exibir alguns dos seus dados ou usar uma opção de dimensionamento Outros que modo de preenchimento para as colunas específicas.

Use o modo de preenchimento de coluna para evitar a exibição do plano de fundo do controle.

conjunto o AutoSizeMode propriedade da última coluna para Fill e use Outros opções para dimensionar o Outros colunas. Se as outras colunas usam muito espaço disponível, conjunto o MinimumWidth propriedade da última coluna.

Exiba uma coluna de largura fixa, sistema autônomo um ícone ou uma coluna de ID.

conjunto AutoSizeMode para None e Resizable para False para a coluna. Inicializar sua largura por configuração o Width propriedade ou ligando o controle AutoResizeColumn método depois de preencher o controle com dados.

Ajuste tamanhos automaticamente sempre que o Sumário da célula é alterado para evitar o recorte e otimizar o uso de espaço.

conjunto uma propriedade de dimensionamento automático para um valor que representa um modo de dimensionamento com base em conteúdo.Para evitar uma penalidade de desempenho ao trabalhar com grandes quantidades de dados, use um modo de dimensionamento que calcula apenas linhas exibidas.

Ajuste tamanhos para se ajustar valores de linhas exibidas para evitar penalidades de desempenho ao trabalhar com várias linhas.

Use os valores de enumeração de modo de dimensionamento apropriado com o redimensionamento automático ou através de programação.Para ajuste tamanhos para caber valores em linhas recém-exibidas durante a rolagem, telefonar um método de redimensionamento em um Scroll manipulador de eventos. Para personalizar o usuário clicar duas vezes para que apenas os valores nas linhas exibidas determinam os tamanhos de novos, o redimensionamento telefonar um método de redimensionamento em um RowDividerDoubleClick ou ColumnDividerDoubleClick manipulador de eventos.

Ajuste tamanhos para caber o Sumário de célula apenas em horários específicos para evitar penalidades de desempenho ou para permitir redimensionamento de usuário.

Chame um método de redimensionamento de conteúdo com base em um manipulador de eventos.Por exemplo, use o DataBindingComplete evento para inicializar tamanhos após a ligação e lidar com o CellValidated ou CellValueChanged evento para ajustar tamanhos para compensar as edições de usuário ou alterações em uma fonte de dados ligada.

Ajuste a altura da linha para o Sumário da célula de várias linhas.

Garantir que as larguras de coluna sejam adequadas para exibição de parágrafos de texto e use o dimensionamento de linha automático ou através de programação baseado em conteúdo para ajustar a altura.Também garantir que as células com o conteúdo de várias linhas sejam exibidas usando um WrapMode valor de estilo de célula True.

Normalmente, você usará um modo de dimensionamento automático de coluna para manter as larguras de coluna ou conjunto para larguras específicas antes de alturas de linha são ajustadas.

Redimensionamento com o mouse

Por padrão, os usuários podem redimensionar linhas, colunas e cabeçalhos que não usam um modo de dimensionamento automático com base nos valores de célula.Para impedir que usuários redimensionada com outros modos, sistema autônomo o modo de preenchimento da coluna, defina uma ou mais do seguinte DataGridView propriedades:

Você também pode impedir os usuários redimensionem linhas individuais ou colunas, definindo seus Resizable Propriedades. Por padrão, a Resizable o valor da propriedade se baseia o AllowUserToResizeColumns valor da propriedade para colunas e o AllowUserToResizeRows valor de propriedade para linhas. Se você conjunto explicitamente Resizable para True ou False, no entanto, o valor especificado substitui o controle valor é para que a linha ou coluna. conjunto Resizable para NotSet restauração a herança.

Porque NotSet Restaura a herança de valor, o Resizable propriedade nunca retornará um NotSet valor, a menos que a linha ou coluna não foi adicionada para um DataGridView controle. Se você precisar determinar se o Resizable valor da propriedade de uma linha ou coluna é herdada, examine sua State propriedade. Se o State valor inclui o ResizableSet sinalizar, o Resizable o valor da propriedade não é herdado.

Dimensionamento automático

Há dois tipos de dimensionamento automático no DataGridView controle: modo de preenchimento da coluna e o dimensionamento automático com base em conteúdo.

Modo de preenchimento coluna faz com que as colunas visíveis no controle para preencher a largura da área de exibição do controle.Para obter mais informações sobre este modo, consulte O modo no Windows Forms DataGridView controle de preenchimento de coluna.

Você também pode configurar linhas, colunas e cabeçalhos para ajuste automaticamente seus tamanhos ajuste o Sumário da célula.Nesse caso, ajuste de dimensionar ocorre sempre que alterar o Sumário da célula.

Observação:

Se você mantiver os valores das células em um cache de dados personalizados usando o modo virtual, o dimensionamento automático ocorre quando o usuário edita um valor de célula, mas não ocorre quando você altera um valor em cache fora de um CellValuePushed manipulador de eventos. Nesse caso, telefonar o UpdateCellValue método para forçar o controle para correnteizar a célula exibir e aplicar modos de dimensionamento automático corrente.

Se o dimensionamento automático com base em conteúdo estiver ativado para uma dimensão só — ou seja, para linhas, mas não em colunas ou colunas, mas não linhas — e WrapMode também é habilitado, o dimensionar de ajuste também ocorre sempre que a Outros dimensão é alterado. Por exemplo, se as linhas e colunas não estão configuradas para dimensionamento automático e WrapMode está habilitado, os usuários podem arrastar divisores de coluna para alterar a largura de uma coluna e alturas de linha ajustará automaticamente para que o Sumário da célula totalmente ainda sejam exibido.

Se você configurar linhas e colunas para dimensionamento automático com base em Sumário e WrapMode estiver habilitada, o DataGridView controle irá ajustar tamanhos sempre que o Sumário das células alteradas e usará uma taxa de altura e largura de célula ideal durante o cálculo de novos tamanhos.

Para configurar o modo de dimensionamento para cabeçalhos e linhas e colunas que não substituem o valor do controle, conjunto um ou mais o seguinte DataGridView propriedades:

Para substituir o modo de dimensionamento de coluna do controle para uma coluna individual, defina sua AutoSizeMode propriedade para um valor diferente de NotSet. O modo de dimensionamento para uma coluna, na verdade, é determinado pelo seu InheritedAutoSizeMode propriedade. O valor desta propriedade é baseado no AutoSizeMode valor da propriedade, a menos que esse valor seja NotSet, caso em que do controle AutoSizeColumnsMode o valor é herdado.

Use conteúdo com base redimensionamento automático com cuidado ao trabalhar com grandes quantidades de dados.Para evitar penalidades de desempenho, use os modos de dimensionamento automático calcular tamanhos com base apenas em linhas exibidas em vez de analisando cada linha no controle.Para obter máximo desempenho, uso programático redimensionamento em vez disso, para que você pode redimensionar em horários específicos, sistema autônomo logo após novos dados é carregado.

Modos de dimensionamento automático com base em conteúdo não afetam a linhas, colunas ou cabeçalhos que você tenha oculto, definindo a linha ou coluna Visible propriedade ou controle RowHeadersVisible ou ColumnHeadersVisible propriedades para false. Por exemplo, se uma coluna está oculta após é dimensionado automaticamente para ajuste o valor de uma célula grande, a coluna oculta não alterará seu dimensionar se a linha que contém o valor da célula grande for excluída.Dimensionamento automático não ocorre quando muda de visibilidade, alterando assim a coluna Visible propriedade true não irá forçá-la para recalcular a seu dimensionar com base em seu Sumário corrente.

Redimensionamento através de programação baseado em conteúdo afeta linhas, colunas e cabeçalhos independentemente de sua visibilidade.

Redimensionamento através de programação

Quando dimensionamento automático desabilitado, você pode conjunto programaticamente a exata largura ou altura de linhas, colunas ou cabeçalhos através das seguintes propriedades:

Você pode também programaticamente redimensionar linhas, colunas e cabeçalhos ajuste seu Sumário usando os seguintes métodos:

Esses métodos irão redimensionar linhas, colunas ou cabeçalhos de uma vez em vez de configurá-los para redimensionamento contínua.Novos tamanhos são calculados automaticamente para exibir todo o Sumário da célula sem corte.Quando você redimensiona colunas que tenham programaticamenteInheritedAutoSizeMode valores de propriedade Fill, no entanto, as larguras calculadas com base em conteúdo são usadas para ajustar proporcionalmente a coluna FillWeight valores de propriedade e as larguras de coluna, na verdade, são, em seguida, calculado de acordo com essas novas proporções para que todas as colunas preencher a área de exibição disponível do controle.

Redimensionamento através de programação é útil para evitar penalidades de desempenho com redimensionamento contínua.Também é útil fornecer tamanhos iniciais para usuários redimensionáveis linhas, colunas e cabeçalhos e para o modo de preenchimento da coluna.

Normalmente, você chamará os métodos de redimensionamento através de programação em horários específicos.Por exemplo, você pode redimensionar programaticamente todas as colunas imediatamente após o carregamento de dados ou programaticamente você pode redimensionar uma linha específica após um valor de determinada célula foi modificado.

Personalizar o comportamento de dimensionamento com base no conteúdo

Você pode personalizar os comportamentos de dimensionamento ao trabalhar com derivada DataGridView tipos de célula, linha e coluna, substituindo o DataGridViewCell.GetPreferredSize, DataGridViewRow.GetPreferredHeight, ou DataGridViewColumn.GetPreferredWidth métodos ou chamando protegido contra redimensionamento sobrecargas de método em um derivado DataGridView controle. Sobrecargas de método de redimensionamento protegido projetadas para funcionar em pares para atingir uma taxa de altura e largura de célula ideal, evitando excessivamente largura ou altura de células.Por exemplo, se você telefonar o AutoResizeRows(DataGridViewAutoSizeRowsMode,Boolean) sobrecarga da AutoResizeRows método e passe um valor de false para o Boolean parâmetro, a sobrecarga calculará os ideais alturas e larguras de células na linha, mas ele irá ajustar somente as alturas de linha. Em seguida, você deve chamar o AutoResizeColumns método para ajustar a largura das colunas do calculado ideal.

Opções de dimensionamento com base em conteúdo

As enumerações usadas pelas propriedades de dimensionamento e métodos têm valores semelhantes para dimensionamento baseados em conteúdo.Com esses valores, você pode limitar quais células são usadas para calcular o tamanho preferencial.Para todas as enumerações de dimensionamento, valores com nomes que se referem a células exibidas limitam seus cálculos para células nas linhas exibidas.Excluir linhas é útil para evitar uma penalidade de desempenho quando você estiver trabalhando com uma grande quantidade de linhas.Você também pode restringir os cálculos em valores de célula em células de cabeçalho ou nonheader.

Consulte também

Tarefas

Como: conjunto modos de dimensionamento de Windows Forms DataGridView controle

Conceitos

O modo no Windows Forms DataGridView controle de preenchimento de coluna

Referência

DataGridView

DataGridView.AllowUserToResizeColumns

DataGridView.AllowUserToResizeRows

DataGridView.ColumnHeadersHeightSizeMode

DataGridView.RowHeadersWidthSizeMode

DataGridViewBand.Resizable

DataGridView.AutoSizeColumnsMode

DataGridView.AutoSizeRowsMode

DataGridViewColumn.AutoSizeMode

DataGridViewColumn.InheritedAutoSizeMode

DataGridView.RowHeadersWidth

DataGridView.ColumnHeadersHeight

DataGridViewRow.Height

DataGridViewColumn.Width

DataGridView.AutoResizeColumn

DataGridView.AutoResizeColumns

DataGridView.AutoResizeColumnHeadersHeight

DataGridView.AutoResizeRow

DataGridView.AutoResizeRows

DataGridView.AutoResizeRowHeadersWidth

DataGridViewAutoSizeRowMode

DataGridViewAutoSizeRowsMode

DataGridViewAutoSizeColumnMode

DataGridViewAutoSizeColumnsMode

DataGridViewColumnHeadersHeightSizeMode

DataGridViewRowHeadersWidthSizeMode

Outros recursos

Redimensionamento de colunas e linhas em controle DataGridView do Windows Forms