Share via


Arquitetura do controle DataGridView (Windows Forms)

O DataGridView controle e suas classes relacionadas são projetados para ser um sistema flexível e extensível para exibir e editar dados tabulares. Essas classes estão todas contidas no System.Windows.Forms namespace e todas são nomeadas com o prefixo "DataGridView".

Elementos de arquitetura

As classes companheiras primárias DataGridView derivam de DataGridViewElement. O modelo de objeto a seguir ilustra a hierarquia de DataGridViewElement herança.

Diagram that shows the DataGridViewElement Object Model hierarchy.

A DataGridViewElement classe fornece uma referência ao controle pai DataGridView e tem uma propriedade, que contém um valor que representa uma State combinação de valores da DataGridViewElementStates enumeração.

As seções a seguir descrevem as DataGridView classes complementares com mais detalhes.

DataGridViewElementStates

A enumeração DataGridViewElementStates contém os seguintes valores:

Os valores dessa enumeração podem ser combinados com os operadores lógicos bit a bit, para que a State propriedade possa expressar mais de um estado ao mesmo tempo. Por exemplo, a DataGridViewElement pode ser simultaneamente Frozen, Selectede Visible.

Células e faixas

O DataGridView controle compreende dois tipos fundamentais de objetos: células e bandas. Todas as células derivam da DataGridViewCell classe base. Os dois tipos de bandas, e DataGridViewRow, DataGridViewColumn ambos derivam da DataGridViewBand classe base.

O DataGridView controle interopera com várias classes, mas as mais comumente encontradas são DataGridViewCell, DataGridViewColumne DataGridViewRow.

DataGridViewCell

A célula é a unidade fundamental de interação para o DataGridView. A exibição é centralizada das células e entrada de dados geralmente é realizada por meio das células. Você pode acessar células usando a coleção da classe e pode acessar as células selecionadas usando a CellsDataGridViewRowSelectedCellsDataGridView coleção do controle. O modelo de objeto a seguir ilustra esse uso e mostra a hierarquia de DataGridViewCell herança.

Diagram that shows the DataGridViewCell Object Model hierarchy.

O DataGridViewCell tipo é uma classe base abstrata, da qual todos os tipos de célula derivam. DataGridViewCell e seus tipos derivados não são controles do Windows Forms, mas alguns controles do Windows Forms de host. Qualquer funcionalidade de edição com suporte de uma célula normalmente é manipulada por um controle hospedado.

DataGridViewCell objetos não controlam sua própria aparência e recursos de pintura da mesma forma que os controles do Windows Forms. Em vez disso, o DataGridView é responsável pela aparência de seus DataGridViewCell objetos. Você pode afetar significativamente a aparência e o comportamento das células interagindo com as DataGridView propriedades e eventos do controle. Quando você tem requisitos especiais para personalizações que estão além dos recursos do DataGridView controle, você pode implementar sua própria classe que deriva de ou uma de DataGridViewCell suas classes filhas.

A lista a seguir mostra as classes derivadas de DataGridViewCell:

DataGridViewColumn

O esquema do armazenamento de dados anexado DataGridView do controle é expresso nas DataGridView colunas do controle. Você pode acessar as DataGridView colunas do controle usando a Columns coleção. Você pode acessar as colunas selecionadas usando a SelectedColumns coleção. O modelo de objeto a seguir ilustra esse uso e mostra a hierarquia de DataGridViewColumn herança.

Diagram that shows the DataGridViewColumn Object Model hierarchy.

Alguns dos principais tipos de células têm tipos de colunas correspondentes. Estes são derivados da DataGridViewColumn classe base.

A lista a seguir mostra as classes derivadas de DataGridViewColumn:

Controles de edição de DataGridView

Células que dão suporte a recursos de edição avançados normalmente usam um controle hospedado que é derivado de um controle dos Windows Forms. Esses controles também implementam a IDataGridViewEditingControl interface. O modelo de objeto a seguir ilustra o uso desses controles.

Diagram showing the DataGridView Editing Control Object Model hierarchy.

Os seguintes controles de edição são fornecidos com o DataGridView controle:

Para obter informações sobre como criar seus próprios controles de edição, consulte Como hospedar controles em células DataGridView dos Windows Forms.

A tabela a seguir ilustra o relacionamento entre tipos de células, tipos de colunas e controles de edição.

Tipo de célula Controle hospedado Tipo de coluna
DataGridViewButtonCell N/D DataGridViewButtonColumn
DataGridViewCheckBoxCell N/D DataGridViewCheckBoxColumn
DataGridViewComboBoxCell DataGridViewComboBoxEditingControl DataGridViewComboBoxColumn
DataGridViewImageCell N/D DataGridViewImageColumn
DataGridViewLinkCell N/D DataGridViewLinkColumn
DataGridViewTextBoxCell DataGridViewTextBoxEditingControl DataGridViewTextBoxColumn

DataGridViewRow

A DataGridViewRow classe exibe os campos de dados de um registro do armazenamento de dados ao qual o DataGridView controle está anexado. Você pode acessar as DataGridView linhas do controle usando a Rows coleção. Você pode acessar as linhas selecionadas usando a SelectedRows coleção. O modelo de objeto a seguir ilustra esse uso e mostra a hierarquia de DataGridViewRow herança.

Diagram that shows the DataGridViewRow Object Model hierarchy.

Você pode derivar seus próprios tipos da DataGridViewRow classe, embora isso normalmente não seja necessário. O DataGridView controle tem vários eventos relacionados à linha e propriedades para personalizar o comportamento de seus DataGridViewRow objetos.

Se você habilitar a propriedade do AllowUserToAddRows controle, uma linha especial para adicionar novas linhas aparecerá como a DataGridView última linha. Esta linha faz parte da Rows coleção, mas tem funcionalidades especiais que podem exigir a sua atenção. Para obter mais informações, consulte Usando a linha para novos registros no controle DataGridView dos Windows Forms.

Confira também