Compartilhar via


Visão geral do controle DataGrid (Windows Forms)

ObservaçãoObservação

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

O Windows Forms DataGrid controle exibe dados em uma série de linhas e colunas. Caso mais simples é quando a grade é ligada a uma fonte de dados com uma única tabela que não contém relações. Nesse caso, os dados aparecem em linhas simples e colunas, como em uma planilha. Para obter mais informações sobre ligação de dados para outros controles, consulte Ligação de dados e o Windows Forms.

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

A screen shot a seguir mostra que um DataGrid vinculados a dados com várias tabelas.

Um DataGrid associado a dados com várias tabelas

Um DataGrid associado a dados com várias tabelas

O DataGrid pode fornecer uma interface de usuário para um dataset, 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 ligação de dados do Windows Forms e por .NET Framework provedores de dados. Portanto, vários controles acoplados à mesma fonte de dados permanecerá em sincronia.

Observação sobre o Visual BasicObservação sobre o Visual Basic

Se você estiver familiarizado com o controle DataGrid no Visual Basic 6.0, você encontrará algumas diferenças significativas nos formulários do Windows DataGrid de controle. Para obter mais informações, consulte Controle DataGrid para usuários do Visual Basic 6.0 e Criando aplicativos de dados com Visual Studio e Criando aplicativos de dados usando Visual Studio e Controle DataGrid para usuários do Visual Basic 6.0.

Quando a grade é ligada a uma 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 da DataGrid de controle, você pode adicionar, excluir, reorganizar e formatar as colunas e linhas de acordo com suas necessidades.

Vinculando dados ao controle

Para o DataGrid controle funcione, ele deve ser ligado a uma fonte de dados usando o DataSource e DataMember Propriedades em tempo de design ou o SetDataBinding método no tempo de execução. Esta ligação aponta o DataGrid a um objeto instanciado da fonte de dados, como um DataSet ou DataTable). O DataGrid controle mostra os resultados das ações que são executadas nos dados. A maioria das ações de específicos de dados não são realizadas por meio de DataGrid , mas em vez disso, através da fonte de dados.

Se os dados no dataset acoplado são atualizados por meio de qualquer mecanismo de DataGrid controle reflete as alterações. Se a grade de dados e seus estilos de tabela e coluna tiver o ReadOnly propriedade definida como false, os dados no dataset podem ser atualizados por meio do DataGrid controle.

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

Fontes de dados válidos para o DataGrid incluem:

Se a fonte for um dataset, o dataset pode ser um objeto no formulário ou um objeto passado para o formulário por um XML Web service. Você pode vincular conjuntos de dados digitado ou não.

Você também pode vincular um DataGrid o controle para estruturas adicionais se os objetos na estrutura, como os elementos em uma matriz, exponham propriedades públicas. A grade exibirá todas as propriedades públicas dos elementos na estrutura. Por exemplo, se você vincular 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 vincular a estrutura, a estrutura acoplada resultante talvez não tenha aplicação prática. Por exemplo, você pode vincular a uma matriz de inteiros, mas porque o Integer o tipo de dados não oferece suporte a uma propriedade pública, não é possível exibir a grade de dados.

Se os seus elementos exponham propriedades públicas, você pode vincular às seguintes estruturas:

  • Qualquer componente que implementa o IList interface. Isso inclui conjuntos 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 suportados pelo Windows Forms.

Exibição de grade

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

Conteúdo 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 um modo de exibição de árvore para selecionar tabelas com, ou você pode especificar que a grade exibir a tabela pai. Os registros na tabela pai permitem aos usuários navegar para as linhas filho relacionados.

ObservaçãoObservação

As tabelas em um dataset estão relacionadas usando um DataRelation. Para obter mais informações, consulte Relacionamentos em DataSets e Relacionamentos em DataSets e Relacionamentos em DataSets e Relacionamentos em Datasets.

Quando o DataGrid controle está exibindo uma tabela e o AllowSorting for definida como true, de dados podem ser reclassificados ao clicar em cabeçalhos de coluna. O usuário também pode adicionar linhas e células de editar.

As relações entre um conjunto de tabelas são exibidas aos usuários por meio de uma estrutura de navegação de pai/filho. Tabelas-pai são o nível mais alto de dados e tabelas filho são essas tabelas de dados que são obtidas com as listagens individuais nas 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 da Web semelhante para as tabelas filho. Quando o usuário seleciona um link, a tabela filho é exibida. Clicando no ícone de linhas pai Mostrar/ocultar (ícone de mostrar/ocultar linhas pai) ocultará as informações sobre a tabela pai ou fazer com que ele reaparecem se o usuário tem oculto proprietário. O usuário pode clicar em um botão ' Voltar ' para voltar à tabela visualizada anteriormente.

Colunas e linhas

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

Qualquer DataGridTableStyle associados a DataGrid controle pode ser acessado através do GridTableStylesCollection. O GridTableStylesCollection podem ser editados no criador com o DataGridTableStyle collection editor, ou programaticamente por meio de DataGrid do controle TableStyles propriedade.

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

Objetos incluídos no controle DataGrid

Os estilos de tabela e coluna são sincronizados com DataTable objetos e DataColumn objetos definindo suas MappingName Propriedades para o apropriado TableName e ColumnName Propriedades. Quando um DataGridTableStyle que não possui nenhuma coluna estilos é adicionado a uma DataGrid controle acoplado a uma fonte de dados válidos e o MappingName daquele estilo de tabela for 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 ao GridColumnStylesCollection. GridColumnStylesCollectioné acessado através do GridColumnStyles propriedade da DataGridTableStyle. Colunas podem ser adicionadas ou excluídas do uso de grade a Add ou Remove método sobre o GridColumnStylesCollection. Para obter mais informações, consulte Como: Adicionar tabelas e colunas para o controle DataGrid do Windows Forms e Como: Excluir ou ocultar colunas no controle Windows Forms DataGrid.

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

Tipo de coluna

Descrição

DataGridTextBoxColumn

Aceita e exibe dados como cadeias de caracteres formatadas ou não formatadas. Recursos de edição são os mesmos são para editar dados em uma simples TextBox. Herda de DataGridColumnStyle.

DataGridBoolColumn

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

Clique duas vezes na borda direita de uma coluna redimensiona a coluna para exibir sua legenda completa e a entrada mais larga.

Os estilos de tabela e coluna

Assim que o formato padrão de ter estabelecido a DataGrid o controle, você pode personalizar as cores que serão usadas quando certas tabelas são exibidas dentro da grade de dados.

Isso é obtido através da criação de instâncias de DataGridTableStyle classe. Os estilos de tabela especificam a formatação de tabelas específicas, diferentes de formatação de padrão da DataGrid controle propriamente dito. Cada tabela pode ter o estilo de uma única tabela definido para ela, ao mesmo tempo.

Às vezes, você desejará ter uma aparência 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, assim como os estilos de tabela estão relacionados a tabelas de dados. Assim como cada tabela pode ter apenas um estilo de tabela definido para ele por vez, portanto, cada coluna pode ter um estilo de coluna definido apenas para, em um estilo de tabela particular. Esse relacionamento é definido da coluna MappingName propriedade.

Se você tiver criado um estilo de tabela sem estilos de coluna adicionados a ela, Visual Studio irá adicionar estilos de coluna padrão quando o formulário e a grade são criados em tempo de execução. No entanto, se você tiver criado um estilo de tabela e adicionados a qualquer estilo de coluna, Visual Studio não irá criar 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 apareça na grade.

Como você especificar quais colunas são incluídas na grade de dados, atribuindo-lhes um estilo de coluna e nenhum estilo de coluna foi atribuído às 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 editar programaticamente os dados que não são exibidos.

ObservaçãoObservação

Em geral, criar estilos de coluna e adicioná-los à coleção de estilos de coluna antes de adicionar estilos de tabela à 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ê deseja ajustar apenas de uma coluna, entre muitas colunas; Por exemplo, o dataset contém colunas de 50 e desejar apenas 49 deles. Nesse caso, é mais fácil importar todas as colunas de 50 e remover programaticamente de um, em vez de através de programação, a adição de cada uma das colunas individuais 49 desejado.

Formatação

Formatação que podem ser aplicadas para o 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: Formatar o controle DataGrid do Windows Forms.

Eventos

Além de comuns controlar eventos como MouseDown, Enter, e Scroll, o DataGrid controle oferece suporte a eventos associados a edição e navegação em grade. O CurrentCell propriedade determina qual célula é selecionada. O CurrentCellChanged evento é gerado 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, o Navigate evento é gerado. O BackButtonClick evento é gerado quando o usuário clica no botão Voltar, 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: Vincular o controle DataGrid do Windows Forms a uma fonte de dados

Como: Adicionar tabelas e colunas para o controle DataGrid do Windows Forms

Como: Excluir ou ocultar colunas no controle Windows Forms DataGrid

Como: Formatar o controle DataGrid do Windows Forms

Outros recursos

Controle DataGrid (Windows Forms)