Estilos de célula no Windows Forms DataGridView controle

Cada célula dentro de DataGridView controle pode ter seu próprio estilo, sistema autônomo o formato de texto, cor do plano de fundo, cor de primeiro plano e fonte. Normalmente, entretanto, várias células compartilharão as características de estilo específica.

Grupos de células que compartilham estilos podem incluir todas as células em específico de linhas ou colunas, todas as células que contêm valores específicos ou todas as células no controle.Porque se sobrepor a esses grupos, cada célula pode obter suas informações de estilo de mais de um único lugar.Por exemplo, você talvez queira cada célula em um DataGridView controle para usar a mesma fonte, mas somente células nas colunas de moeda para usar o formato de moeda e somente as células de moeda com números negativos para usar uma cor de primeiro plano vermelho.

A classe DataGridViewCellStyle

The DataGridViewCellStyle classe contém as seguintes propriedades relacionadas ao estilo visual:

Essa classe também contém as seguintes propriedades relacionadas à formatação:

Para obter mais informações sobre essas propriedades e outras propriedades de estilo de célula, consulte o DataGridViewCellStyle Consulte a documentação e os tópicos listados na seção Consulte também abaixo.

Usando objetos DataGridViewCellStyle

Você pode recuperar DataGridViewCellStyle objetos de várias propriedades da DataGridView, DataGridViewColumn, DataGridViewRow, e DataGridViewCell classes e suas classes derivadas. Se uma dessas propriedades ainda não tiver sido conjunto, recuperar seu valor criará um novo DataGridViewCellStyle objeto. Você também pode instanciar seu próprio DataGridViewCellStyle objetos e atribuí-los para essas propriedades.

Você pode evitar a duplicação desnecessária de informações de estilo, compartilhando DataGridViewCellStyle objetos entre vários DataGridView elementos. Como conjunto os estilos no controle, coluna e filtro de níveis de linha para baixo através de cada nível para nível da célula, você também pode evitar duplicação estilo definindo somente as propriedades de estilo em cada nível que diferem dos níveis acima.Isso é descrito mais detalhadamente a herança de estilo de seção a seguir.

A tabela a seguir lista as propriedades principais que obtém ou conjunto DataGridViewCellStyle objetos.

Propriedade

Classes

Descrição

DefaultCellStyle

DataGridView, DataGridViewColumn, DataGridViewRowe classes derivadas

Obtém ou define os estilos padrão usados por todas as células em todo o controle (incluindo células de cabeçalho), em uma coluna ou em uma linha.

RowsDefaultCellStyle

DataGridView

Obtém ou define os estilos de célula padrão usados por todas as linhas no controle.Isso não inclui células de cabeçalho.

AlternatingRowsDefaultCellStyle

DataGridView

Obtém ou define os estilos de célula padrão usados, alternando linhas no controle.Usado para criar um efeito de razão.

RowHeadersDefaultCellStyle

DataGridView

Obtém ou define os estilos de célula padrão usados pelos cabeçalhos de linha do controle.Substituída pelo tema corrente se estilos visuais estão ativados.

ColumnHeadersDefaultCellStyle

DataGridView

Obtém ou define os estilos de célula padrão usados pelos cabeçalhos de coluna do controle.Substituída pelo tema corrente se estilos visuais estão ativados.

Style

DataGridViewCell e classes derivadas

Obtém ou define estilos especificados no nível da célula.Esses estilos substituirão aqueles herdados de níveis mais altos.

InheritedStyle

DataGridViewCell, DataGridViewRow, DataGridViewColumne classes derivadas

Obtém todos os estilos atualmente aplicados à célula, linha ou coluna, incluindo estilos herdados de níveis mais altos.

sistema autônomo mencionado acima, obtendo o valor de uma propriedade de estilo automaticamente instancia um novo DataGridViewCellStyle objeto se a propriedade não tiver sido previamente conjunto. Para evitar a criação desses objetos desnecessariamente, as classes de linha e coluna têm um HasDefaultCellStyle propriedade que você pode verificar para determinar se o DefaultCellStyle propriedade tem sido conjunto. Da mesma forma, as classes de célula têm um HasStyle propriedade que indica se a Style propriedade tem sido conjunto.

Cada uma das propriedades de estilo tem um correspondente PropertyNameChanged evento a DataGridView controle. Para as propriedades da célula, coluna e linha, o nome do evento começa com"Row", "Column", ou"Cell"(por exemplo, RowDefaultCellStyleChanged). Cada um desses eventos ocorre quando a propriedade de estilo correspondente está definida para um outro DataGridViewCellStyle objeto. Esses eventos não ocorrem quando você recupera um DataGridViewCellStyle objeto de uma propriedade de estilo e modificar seus valores de propriedade. Para responder a alterações próprios objetos de estilo de célula, lidar com o CellStyleContentChanged evento.

Estilo de herança

Cada DataGridViewCell obtém sua aparência do seu InheritedStyle propriedade. The DataGridViewCellStyle objeto retornado por essa propriedade herda seus valores de uma hierarquia de propriedades do tipo DataGridViewCellStyle. Essas propriedades estão listadas abaixo na ordem em que o InheritedStyle para células de cabeçalho não obtém seus valores.

  1. DataGridViewCell.Style

  2. DataGridViewRow.DefaultCellStyle

  3. DataGridView.AlternatingRowsDefaultCellStyle (apenas para células em linhas com números ímpares de índice)

  4. DataGridView.RowsDefaultCellStyle

  5. DataGridViewColumn.DefaultCellStyle

  6. DataGridView.DefaultCellStyle

Para células de cabeçalho de linha e coluna, a InheritedStyle propriedade é preenchida por valores na seguinte lista de propriedades de fonte em determinada ordem.

  1. DataGridViewCell.Style

  2. DataGridView.ColumnHeadersDefaultCellStyle ou DataGridView.RowHeadersDefaultCellStyle

  3. DataGridView.DefaultCellStyle

O seguinte diagrama ilustra esse processo:

Você também pode acessar os estilos herdados por específico de linhas e colunas.A coluna InheritedStyle propriedade herda seus valores de propriedades a seguir.

  1. DataGridViewColumn.DefaultCellStyle

  2. DataGridView.DefaultCellStyle

A linha InheritedStyle propriedade herda seus valores de propriedades a seguir.

  1. DataGridViewRow.DefaultCellStyle

  2. DataGridView.AlternatingRowsDefaultCellStyle (apenas para células em linhas com números ímpares de índice)

  3. DataGridView.RowsDefaultCellStyle

  4. DataGridView.DefaultCellStyle

Para cada propriedade em um DataGridViewCellStyle objeto retornado por um InheritedStyle propriedade, o valor da propriedade será obtido do primeiro estilo de célula na lista de apropriada com a propriedade correspondente conjunto com um valor diferente de DataGridViewCellStyle padrões de classe.

A tabela a seguir ilustra como a ForeColor valor da propriedade para uma célula de exemplo é herdada da coluna que contém.

Propriedade do tipo DataGridViewCellStyle

Exemplo ForeColor valor do objeto recuperado

DataGridViewCell.Style

Color.Empty

DataGridViewRow.DefaultCellStyle

Color.Red

DataGridView.AlternatingRowsDefaultCellStyle

Color.Empty

DataGridView.RowsDefaultCellStyle

Color.Empty

DataGridViewColumn.DefaultCellStyle

Color.DarkBlue

DataGridView.DefaultCellStyle

Color.Black

Nesse caso, a Color.Red valor da linha da célula é o primeiro valor real da lista. Isso se torna o ForeColor valor da propriedade da célula InheritedStyle.

O diagrama a seguir ilustra as diferentes DataGridViewCellStyle propriedades podem herdar os valores de locais diferentes.

Aproveitando a herança de estilo, você pode fornecer estilos apropriados para todo o controle sem ter que especificar as mesmas informações em vários locais.

Embora a células de cabeçalho participem de herança de estilo conforme descrito, sistema autônomo objetos retornados pelo ColumnHeadersDefaultCellStyle e RowHeadersDefaultCellStyle propriedades das DataGridView controle ter valores de propriedade inicial que substituem sistema autônomo valores de propriedade do objeto retornado pela DefaultCellStyle propriedade. Se você desejar que as propriedades definidas para o objeto retornado pelo DefaultCellStyle propriedade para aplicar a cabeçalhos de linha e coluna, você deve conjunto as propriedades correspondentes de objetos retornados pela ColumnHeadersDefaultCellStyle e RowHeadersDefaultCellStyle propriedades para os padrões indicado para o DataGridViewCellStyle classe.

Observação:

Se os estilos visuais estiverem ativados, os cabeçalhos de linha e coluna (exceto para o TopLeftHeaderCell) automaticamente com estilo do tema corrente, substituindo qualquer estilo especificado por essas propriedades.

The DataGridViewButtonColumn, DataGridViewImageColumn, e DataGridViewCheckBoxColumn tipos também inicializar alguns valores do objeto retornado pela coluna DefaultCellStyle propriedade. Para obter mais informações, consulte a documentação de referência para esses tipos.

Definir estilos dinamicamente

Para personalizar os estilos de células com valores específicos, implementar um manipulador para o DataGridView.CellFormatting evento. Manipuladores para esse evento recebem um argumento do DataGridViewCellFormattingEventArgs Digite. Este objeto contém propriedades que permitem determinar o valor da célula que está sendo formatado junto com seu local no DataGridView controle. Este objeto contém também um CellStyle propriedade é inicializada para o valor da InheritedStyle propriedade da célula que está sendo formatada. Você pode modificar as propriedades de estilo de célula para especificar informações de estilo apropriadas para o valor da célula e o local.

Observação:

O RowPrePaint e RowPostPaint eventos também receberá um DataGridViewCellStyle dados além de eventos de objeto, mas seu caso, é uma cópia da linha InheritedStyle propriedade para fins de somente leitura e as alterações não afetam o controle.

Também dinamicamente, você pode modificar sistema autônomo estilos de células individuais em resposta a eventos sistema autônomo a DataGridView.CellMouseEnter e CellMouseLeave eventos. Por exemplo, em um manipulador para o CellMouseEnter evento, você pode armazenar o valor corrente da cor do plano de fundo da célula (recuperado por meio da célula Style propriedade), em seguida, conjunto-lo para uma nova cor irá realçar a célula quando o mouse passa sobre ele. Em um manipulador para o CellMouseLeave evento, você poderá restauração a cor do plano de fundo para o valor original.

Observação:

Armazenamento em cache os valores armazenados da célula Style propriedade é importante independentemente de um valor determinado estilo é definido. Se você substituir temporariamente uma configuração de estilo, restaurando para seu estado original "conjunto" garante que a célula irá retornar para herdam a configuração de estilo um nível mais alto.Se você precisar determinar o estilo real em vigor para uma célula independentemente de se o estilo é herdado, use InheritedStyle propriedade.

Consulte também

Tarefas

Como: conjunto estilos de célula padrão para o Windows Forms DataGridView controle

Conceitos

Dados de formatação em Windows Forms DataGridView controle

Referência

DataGridView

DataGridViewCellStyle

DataGridView.AlternatingRowsDefaultCellStyle

DataGridView.ColumnHeadersDefaultCellStyle

DataGridView.DefaultCellStyle

DataGridView.RowHeadersDefaultCellStyle

DataGridView.RowsDefaultCellStyle

DataGridViewBand.InheritedStyle

DataGridViewRow.InheritedStyle

DataGridViewColumn.InheritedStyle

DataGridViewBand.DefaultCellStyle

DataGridViewCell.InheritedStyle

DataGridViewCell.Style

DataGridView.CellFormatting

DataGridView.CellStyleContentChanged

DataGridView.RowPrePaint

DataGridView.RowPostPaint

Outros recursos

A formatação básica e o estilo in Windows Forms DataGridView controle