Partilhar via


Visão geral do controle DataGrid (Windows Forms)

Observação:

O DataGridView controle substitui e adiciona funcionalidade a DataGrid controle; no entanto, o DataGrid controle é mantida para compatibilidade com versões anteriores e para uso futuro, se você escolher. Para obter mais informações, consulte Diferenças entre Windows Forms DataGridView and DataGrid Controls.

O Windows Forms DataGrid controle exibe dados em uma série de linhas e colunas. Caso mais simples é quando a grade é limite a uma fonte de dados com uma única tabela que não contém relações.Nesse caso, sistema autônomo dados são exibidos em linhas simples e colunas, sistema autônomo em uma planilha.Para obter mais informações sobre vinculação de dados a outros controles, consulte Ligação de dados e o Windows Forms.

Se o DataGrid está limite a dados com várias tabelas relacionadas, e se a navegação estiver habilitada na grade, a grade exibirá expansores em cada linha. Com uma expansão, o usuário pode ir de uma tabela pai a uma tabela filho.Clicar em um nó exibe a tabela filho e clicando em um botão traseiro exibe a tabela pai original.Dessa forma, a grade exibe as relações hierárquicas entre tabelas.

A tela shot a seguir mostra um DataGrid limite aos dados com várias tabelas.

Um DataGrid associado a dados com várias tabelas

The DataGrid pode fornecer uma interface de usuário para um conjunto de dados, a navegação entre tabelas relacionadas e formatação de rich text e recursos de edição.

A exibição e manipulação de dados são funções separadas: O controle manipula a interface do usuário, enquanto as atualizações de dados são manipuladas pela arquitetura de vinculação de dados Windows Forms e por .NET Framework provedores de dados. Portanto, vários controles limite aos mesmos dados de fonte permanecerá em sincronização.

Observação sobre o Visual Basic:

Se você estiver familiarizado com o controle DataGrid no Visual Basic 6.0, você encontrará algumas diferenças significativas no Windows Forms Controle DataGrid

Quando a grade é ligada a um DataSet, as colunas e linhas são automaticamente criadas, formatadas e preenchidas. Para obter mais informações, consulte Ligação de dados e o Windows Forms.Após a geração do DataGrid controlar, você pode adicionar, excluir, reorganizar e formatar colunas e linhas dependendo das suas necessidades.

Vinculando dados ao controle

O DataGrid controle funcione, ele deve ser limite a uma fonte de dados usando o DataSource e DataMember propriedades em time de design ou o SetDataBinding método em time de execução. Esta ligação aponta o DataGrid a um objeto de fonte de dados instanciado, sistema autônomo um DataSet ou DataTable). The DataGrid controle mostra os resultados das ações executadas nos dados. A maioria das ações específicos de dados não são realizadas por meio de DataGrid , mas em vez pela fonte de dados.

Se os dados no dataset limite são atualizados por meio de qualquer mecanismo, a DataGrid controle reflete as alterações. Se a grade de dados e seus estilos de tabela e estilos de coluna tiverem o ReadOnly conjunto de propriedades como false, os dados no dataset podem ser atualizados através do DataGrid controle.

Uma única tabela pode ser mostrada no DataGrid no momento. Se for definida uma relação pai-filho entre tabelas, o usuário pode mover entre as tabelas relacionadas para selecionar a tabela a ser exibido no DataGrid controle. Para obter informações sobre como vincular um DataGrid o controle para um ADO.NET fonte de dados em time de design ou time de execução, consulte Como: BIND o controle DataGrid do Windows Forms a uma fonte de dados.

Fontes de dados válido para o DataGrid incluem:

Se a fonte for um conjunto de dados, o conjunto de dados pode ser um objeto no formulário ou um objeto passado para o formulário por um serviço XML da Web.Você pode BIND conjuntos de dados digitado ou sem tipo.

Você também pode BIND um DataGrid controle estruturas adicionais se sistema autônomo objetos na estrutura, sistema autônomo sistema autônomo elementos em uma matriz, expõem propriedades públicas. A grade exibirá todas as propriedades públicas dos elementos na estrutura.Por exemplo, se você BIND o DataGrid objetos de controle para uma matriz de cliente, a grade exibirá todas as propriedades públicas desses objetos de cliente. Em alguns casos, isso significa que, embora você pode BIND a estrutura de, a estrutura acoplada resultante talvez não tenha aplicação prática.Por exemplo, você pode BIND a uma matriz de inteiros, mas porque o Integer tipo de dados não oferece suporte a uma propriedade pública, a grade não pode exibir todos os dados.

Se seus elementos expõem propriedades públicas, você pode BIND às seguintes estruturas:

  • Qualquer componente que implementa o IList interface. Isso inclui matrizes de dimensão única.

  • Qualquer componente que implementa o IListSource interface.

  • Qualquer componente que implementa o IBindingList interface.

Para obter mais informações sobre fontes de dados possíveis, consulte Fontes de dados com suporte no Windows Forms.

Exibir grade

Um uso comum do DataGrid controle é exibir uma única tabela de dados de um dataset. No entanto, o controle também pode ser usado para exibir várias tabelas, incluindo tabelas relacionadas.A exibição de grade é ajustada automaticamente de acordo com a fonte de dados.A tabela a seguir mostra o que é exibido para várias configurações.

Sumário do conjunto de dados

O que é exibido

Tabela única.

Tabela é exibida em uma grade.

Várias tabelas.

A grade pode exibir um modo de exibição de árvore que os usuários podem navegar para localizar a tabela que desejam exibir.

Várias tabelas relacionadas.

A grade pode exibir uma visualização em árvore para selecionar tabelas com, ou você pode especificar que a grade exibirá a tabela pai.Registros da tabela pai permitem que o usuário navegar para as linhas filho relacionados.

Observação:

Tabelas em um dataset são relacionadas usando um DataRelation.

Quando o DataGrid controle está exibindo uma tabela e o AllowSorting propriedade é conjunto para true, dados podem ser rearmazenados clicando em cabeçalhos de coluna. O usuário também pode adicionar linhas e edição as células.

As relações entre um conjunto de tabelas são exibidas para os usuários usando uma estrutura de navegação de pai/filho.Tabelas-pai são o nível mais alto de dados e tabelas filho são as tabelas de dados derivados de listagens de individuais em tabelas pai.Expansores são exibidos em cada linha pai que contém uma tabela filho.Clicando em um expansor gera uma lista de links de estilo da Web para as tabelas filho.Quando o usuário seleciona um link, a tabela filho é exibida.Clicando no ícone de linhas de Mostrar/ocultar pai () irá ocultar as informações sobre a tabela pai ou fazer com que ele reaparecem se o usuário tem anteriormente oculto. O usuário pode clicar em um botão Voltar para voltar à tabela exibida anteriormente.

Colunas e linhas

The DataGrid consiste em uma coleção de DataGridTableStyle objetos que estão contidos na DataGrid do controle TableStyles propriedade. Um estilo de tabela pode conter uma coleção de DataGridColumnStyle objetos que estão contidos na GridColumnStyles propriedade das DataGridTableStyle.. Você pode edição o TableStyles e GridColumnStyles propriedades usando editores de coleção acessadas através do Propriedades janela.

Any DataGridTableStyle associado com o DataGrid controle pode ser acessado por meio do GridTableStylesCollection. The GridTableStylesCollection pode ser editado no criador com o DataGridTableStyle editor de coleção ou programaticamente por meio do DataGrid do controle TableStyles propriedade.

A ilustração a seguir mostra os objetos do banco de dados incluídos no controle DataGrid.

Estilos de tabela e os estilos de coluna são sincronizados com DataTable objetos e DataColumn objetos, definindo seus MappingName propriedades para o apropriado TableName e ColumnName Propriedades. Quando um DataGridTableStyle que não possui nenhuma coluna estilos é adicionado a um DataGrid controle limite a uma fonte de dados válida e o MappingName propriedade de estilo da tabela é definida como válido TableName propriedade, uma coleção de DataGridColumnStyle objetos é criado para esse estilo de tabela. Para cada DataColumn encontrado na Columns coleção da DataTable, um correspondente DataGridColumnStyle é adicionado à GridColumnStylesCollection. GridColumnStylesCollection é acessado através do GridColumnStyles propriedade das DataGridTableStyle. Colunas podem ser adicionadas ou excluídas da grade usando o Add ou Remove método na GridColumnStylesCollection. Para obter mais informações, consulte Como: Adicionar tabelas e colunas ao controle DataGrid do Windows Forms e Como: Excluir ou ocultar colunas no controle DataGrid do Windows Forms.

Uma coleção de tipos de coluna estende o DataGridColumnStyle classe com recursos de edição e formatação rich. Todos os tipos de coluna herdam o DataGridColumnStyle classe base. A classe criada depende do DataType propriedade das DataColumn do qual o DataGridColumn se baseia. Por exemplo, um DataColumn com seu DataType conjunto de propriedades como Boolean será associada a DataGridBoolColumn. A tabela a seguir descreve cada um desses tipos de coluna.

Tipo de coluna

Descrição

DataGridTextBoxColumn

Aceita e exibe dados sistema autônomo cadeias de caracteres formatadas ou não formatadas.Recursos de edição são sistema autônomo mesmos são para editar dados em um simples TextBox. Herda de DataGridColumnStyle.

DataGridBoolColumn

Aceita e exibe true, falsee valores nulo. Herda de DataGridColumnStyle.

Clicar duas vezes a extremidade direita de uma coluna redimensiona a coluna exiba sua legenda completa e entrada mais larga.

Estilos de tabela e estilos de coluna

Assim que tiver estabelecido o formato padrão do DataGrid controle, você pode personalizar sistema autônomo cores que serão usadas quando determinadas tabelas são exibidas na grade de dados.

Isso é conseguido por meio da criação de instâncias do DataGridTableStyle classe. Estilos de tabela, especifique a formatação de tabelas específicas, diferentes de formatação padrão do DataGrid controle propriamente dito. Cada tabela pode ter somente uma tabela estilo definido para ele por vez.

Às vezes, você desejará ter uma aparência de coluna específica diferente do restante das colunas de uma tabela de dados específico.Você pode criar um conjunto personalizado de estilos de coluna usando o GridColumnStyles propriedade.

Estilos de coluna estão relacionados às colunas em um dataset como estilos de tabela estão relacionados a tabelas de dados.Assim sistema autônomo cada tabela deve ter apenas um estilo de tabela definido para ele ao mesmo time, portanto, cada coluna pode ter um estilo de coluna definido apenas para, em um estilo de tabela específica.Esse Relação é definido da coluna MappingName propriedade.

Se você tiver criado um estilo de tabela sem colunas estilos adicionados a ela, Visual Studio irá adicionar estilos de coluna padrão quando o formulário e a grade são criados em time de execução. No entanto, se você tiver criado um estilo de tabela e adicionar qualquer estilo de coluna a ela, Visual Studio não criará os estilos de coluna. Além disso, você precisará definir estilos de coluna e atribuí-los com o nome de mapeamento para que as colunas que você deseja que aparecem na grade.

Como você especifique quais colunas são incluídas na grade de dados, atribuindo-lhes um estilo de coluna e nenhum estilo de coluna tiver sido atribuído a colunas, você pode incluir colunas de dados no dataset que não são exibidos na grade.No entanto, porque a coluna de dados está incluída no dataset, você pode edição programaticamente os dados que não são exibidos.

Observação:

Em geral, criar estilos de coluna e adicioná-los à coleção de estilos de coluna antes de adicionar estilos de tabela para a coleção de estilos de tabela.Quando você adiciona um estilo de tabela vazia à coleção, estilos de coluna são gerados automaticamente para você.Conseqüentemente, uma exceção será lançada se você tentar adicionar novos estilos de coluna com duplicata MappingName valores para a coleção de estilos de coluna.

Às vezes, você vai querer ajustar apenas uma coluna entre várias colunas; por exemplo, o dataset contém 50 colunas e desejar apenas 49 deles.Nesse caso, é mais fácil importar todas as 50 colunas e remover programaticamente uma, em vez de programaticamente adicionar todas as colunas individuais 49 desejado.

Formatação

Formatação que pode ser aplicada ao DataGrid controle inclui os estilos de borda, estilos de linha de grade, fontes, propriedades da legenda, alinhamento de dados e alternando as cores de plano de fundo entre linhas. Para obter mais informações, consulte Como: Formate o controle DataGrid do Windows Forms.

Eventos

Além sistema autônomo eventos de controle comuns sistema autônomo, por exemplo, MouseDown, Enter, e Scroll, o DataGrid controle oferece suporte a eventos associados a edição e navegação em grade. The CurrentCell propriedade determina qual célula é selecionada. The CurrentCellChanged evento é ocasionado quando o usuário navega para uma nova célula. Quando o usuário navega para uma nova tabela por meio de relações pai/filho, a Navigate evento é gerado. The BackButtonClick evento é ocasionado quando o usuário clica no botão back quando o usuário está exibindo uma tabela filho e o ShowParentDetailsButtonClick evento é gerado quando o ícone de linhas pai Mostrar/ocultar é clicado.

Consulte também

Tarefas

Como: BIND o controle DataGrid do Windows Forms a uma fonte de dados

Como: Adicionar tabelas e colunas ao controle DataGrid do Windows Forms

Como: Excluir ou ocultar colunas no controle DataGrid do Windows Forms

Como: Formate o controle DataGrid do Windows Forms

Outros recursos

Controle DataGrid (Windows Forms)