Compartilhar via


Estilos de célula em que o controle DataGridView do Windows Forms

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

Grupos de células que compartilham estilos podem incluir todas as células dentro de determinado 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 lugar. Por exemplo, convém cada célula uma DataGridView o controle para usar o mesmo fonte, mas somente as células nas colunas de moeda para usar o formato de moeda e apenas as células de moeda com números negativos, para usar uma cor vermelho no primeiro plano.

A classe DataGridViewCellStyle

O 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 a documentação de referência e os tópicos listados na seção Consulte também abaixo.

Usando os objetos DataGridViewCellStyle

Você pode recuperar DataGridViewCellStyle objetos a partir de várias propriedades da DataGridView, DataGridViewColumn, DataGridViewRow, e DataGridViewCell classes e suas classes derivadas. Se uma dessas propriedades ainda não foi definida, recuperar seu valor criará uma nova 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. Porque os estilos definidos no filtro de níveis de linha para baixo através de cada nível para o nível de célula, coluna e controle, você também pode evitar a duplicação de estilo, definindo as propriedades de estilo em cada nível que diferem dos níveis acima. Isso é descrito mais detalhadamente na seção de herança de estilo que se segue.

A tabela a seguir lista as propriedades de principais que get ou set DataGridViewCellStyle objetos.

Propriedade

Classes

Descrição

DefaultCellStyle

DataGridView, DataGridViewColumn, DataGridViewRowe as 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 as 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ído pelo tema atual, se os 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ído pelo tema atual, se os estilos visuais estão ativados.

Style

DataGridViewCelle classes derivadas

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

InheritedStyle

DataGridViewCell, DataGridViewRow, DataGridViewColumne as classes derivadas

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

Conforme mencionado acima, obter o valor de uma propriedade de estilo automaticamente instancia um novo DataGridViewCellStyle o objeto se a propriedade não tiver sido definido anteriormente. Para evitar a criação desses objetos desnecessariamente, as classes de linha e coluna tem um HasDefaultCellStyle propriedade que você pode verificar para determinar se o DefaultCellStyle propriedade foi definido. Da mesma forma, as classes de célula tem uma HasStyle propriedade que indica se a Style propriedade foi definido.

Cada uma das propriedades de estilo tem um correspondente PropertyNameChanged eventos sobre o DataGridView de controle. Para a linha, coluna e propriedades da célula, 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 diferente DataGridViewCellStyle objeto. Esses eventos não ocorrem quando você recupera um DataGridViewCellStyle de uma propriedade de estilo de objeto e modificar os valores de propriedade. Para responder a alterações para os próprios objetos de estilo de célula, lidar com o CellStyleContentChanged de evento.

Herança de estilo

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

  1. DataGridViewCell.Style

  2. DataGridViewRow.DefaultCellStyle

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

  4. DataGridView.RowsDefaultCellStyle

  5. DataGridViewColumn.DefaultCellStyle

  6. DataGridView.DefaultCellStyle

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

  1. DataGridViewCell.Style

  2. DataGridView.ColumnHeadersDefaultCellStyleouDataGridView.RowHeadersDefaultCellStyle

  3. DataGridView.DefaultCellStyle

O seguinte diagrama ilustra esse processo:

Propriedades do tipo DataGridViewCellStyle

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

  1. DataGridViewColumn.DefaultCellStyle

  2. DataGridView.DefaultCellStyle

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

  1. DataGridViewRow.DefaultCellStyle

  2. DataGridView.AlternatingRowsDefaultCellStyle(somente para as 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 é obtido o primeiro estilo de célula na lista apropriada que tenha a propriedade correspondente definida como um valor diferente do DataGridViewCellStyle padrões de classe.

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

Propriedade do tipoDataGridViewCellStyle

Exemplo ForeColor valor para o 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, o Color.Red o valor da linha da célula é o primeiro valor real na lista. Isso se torna o ForeColor valor da propriedade da célula InheritedStyle.

O diagrama a seguir ilustra como diferentes DataGridViewCellStyle propriedades podem herdam seus valores de diferentes locais.

Herança com valor de propriedade DataGridView

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

Embora as células de cabeçalho participarem herança de estilo, conforme descrito, os objetos retornados pelo ColumnHeadersDefaultCellStyle e RowHeadersDefaultCellStyle Propriedades da DataGridView controle ter valores de propriedade inicial que substituem os valores de propriedade do objeto retornado pela DefaultCellStyle propriedade. Se você deseja que as propriedades definidas para o objeto retornado pelo DefaultCellStyle propriedade para aplicar a cabeçalhos de linha e coluna, você deve definir as propriedades dos objetos retornados por correspondentes a ColumnHeadersDefaultCellStyle e RowHeadersDefaultCellStyle Propriedades padrões indicado para o DataGridViewCellStyle classe.

ObservaçãoObservação

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

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

A definição de estilos dinamicamente

Para personalizar os estilos de células com valores específicos, implementar um manipulador para o DataGridView.CellFormatting de evento. Manipuladores para este evento recebem um argumento do DataGridViewCellFormattingEventArgs tipo. Este objeto contém propriedades que permitem determinar o valor da célula que está sendo formatado com o seu local no DataGridView de controle. Esse objeto também contém um CellStyle propriedade é inicializada com o valor do 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çãoObservação

O RowPrePaint e RowPostPaint eventos também recebem uma 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 feitas nele não afetam o controle.

Você pode modificar os estilos de células individuais em resposta a eventos também dinamicamente, como o DataGridView.CellMouseEnter e CellMouseLeave eventos. Por exemplo, em um manipulador para o CellMouseEnter evento, você poderia armazenar o valor atual da cor de plano de fundo da célula (recuperados através da célula Style propriedade), em seguida, defina-o como uma nova cor que destacará a célula quando o mouse passa sobre o proprietário. Em um manipulador para o CellMouseLeave evento, você poderá restaurar a cor de plano de fundo para o valor original.

ObservaçãoObservação

Armazenamento em cache os valores armazenados na célula Style propriedade é importante independentemente do valor de um determinado estilo é definido. Se você substituir temporariamente uma configuração de estilo, restaurando para seu original "não definido" estado garante que a célula voltará para a configuração de estilo de herança de um nível superior. Se você precisa determinar o estilo real em vigor para uma célula independentemente, por exemplo, se o estilo é herdado, use a célula InheritedStyle propriedade.

Consulte também

Tarefas

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

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

Conceitos

Formatação de dados no Windows Forms DataGridView Control

Outros recursos

Formatação básica e o controle DataGridView do Windows Forms de estilo