Como vincular um controle DataGrid para uma matriz de estruturas ou objetos usando o Visual Basic .NET ou Visual Basic 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 315784
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 315786.
Sumário
Este artigo passo a passo descreve como vincular uma matriz de objetos a um controle DataGrid . O exemplo consiste em um formulário do Windows com um controle DataGrid para exibir valores de propriedade do objeto e quatro botões de comando para procurar as linhas do controle DataGrid .

back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Visual Basic .NET ou Visual Basic 2005
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Conceitos de programação Visual Basic
back to the top

Criar a classe

Uma classe que deve ser vinculado a um controle deve ter acessadores de propriedade. Qualquer propriedade que deve ser vinculado deve ter os métodos de Conjunto de propriedades e propriedade . A classe de exemplo que é usada neste artigo tem três membros (somente um é mostrado aqui.) Um construtor com parâmetros também foi fornecido, mas não é um requisito.
Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    End Class				
back to the top

Adicionar instâncias de classe a uma matriz

  1. Declare uma matriz.
  2. Criar instâncias da classe e adicionar as instâncias à matriz.
Private arr(2) As guitararr(0) = New guitar("Gibson", "Les Paul", 1958)arr(1) = New guitar("Fender", "Jazz Bass", 1964)arr(2) = New guitar("Guild", "Bluesbird", 1971)				
back to the top

Vincular a matriz ao controle DataGrid

Após a matriz foi preenchida, defina a propriedade DataSource do controle DataGrid à matriz. As colunas no controle DataGrid são preenchidas com base nas propriedades para o qual existem acessadores de propriedade no escopo.
DataGrid1.DataSource = arr				
back to the top

Fornecer médias para procurar a matriz

Você pode usar CurrencyManager para percorrer a matriz. Para fazer isso, associe CurrencyManager BindingContext do controle (no caso, a matriz).
Private cManager As CurrencyManagercManager = CType(DataGrid1.BindingContext(arr), CurrencyManager)				
a classe CurrencyManager tem uma propriedade posição que você pode manipular para iterar sobre os membros da matriz. Adicionando a ou subtração de, o valor atual de posição , você pode procurar as linhas do controle DataGrid .
'Move forward one element.cManager.Position += 1'Move back one element.cManager.Position -= 1'Move to the beginning.cManager.Position = 0'Move to the end.cManager.Position = arr.Length - 1				
back to the top

Exemplo passo a passo

  1. No Visual Basic .NET ou Visual Basic 2005, crie um novo projeto Windows Application. O Form1 é criado por padrão.

    Observação Você deve alterar o código no Visual Basic 2005. Por padrão, Visual Basic cria dois arquivos para o projeto quando você cria um projeto Windows Forms. Se o formulário é denominado Form1, os dois arquivos que representam o formulário são chamados de Form1.vb e Form1.Designer.vb. Escreva o código no arquivo Form1.vb. O Windows Forms Designer escreve o código no arquivo Form1.Designer.vb. O Windows Forms Designer usa a palavra-chave partial para dividir a implementação de Form1 em dois arquivos separados. Esse comportamento impede que o código gerado pelo designer sendo intercaladas com seu código.

    Para obter mais informações sobre os novos aprimoramentos linguagem Visual Basic 2005, visite o seguinte site da Web Microsoft Developer Network (MSDN): Para obter mais informações sobre classes parciais e o Windows Forms Designer, visite o seguinte site da MSDN:
  2. No menu Project , selecione Add Class para adicionar uma classe para o projeto.
  3. Substitua o código no Class1.vb com o seguinte:
    Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    Public Property model() As String        Get            Return m_model        End Get        Set(ByVal Value As String)            m_model = Value        End Set    End Property    Public Property year() As Short        Get            Return m_year        End Get        Set(ByVal Value As Short)            m_year = Value        End Set    End PropertyEnd Class					
  4. Feche a janela de código Class1.vb e, em seguida, alterne para o criador de formulários.
  5. Adicione um controle DataGrid ao Form1. Dimensione o controle DataGrid para acomodar quatro colunas e três linhas.
  6. Adicione quatro controles de botão a Form1 e organizar os botões horizontalmente.
  7. Altere a propriedade texto de Button1 para Avançar .
  8. Altere a propriedade texto de Button2 ao anterior .
  9. Altere a propriedade texto de Button3 para primeiro .
  10. Altere a propriedade texto de Button4 a última .
  11. Adicione o seguinte código à classe Form1 :
    Private cManager As CurrencyManagerPrivate arr(2) As guitar					
  12. Adicione o seguinte código ao evento Form1_Load :
    arr(0) = New guitar("Gibson", "Les Paul", 1958)arr(1) = New guitar("Fender", "Jazz Bass", 1964)arr(2) = New guitar("Guild", "Bluesbird", 1971)				cManager = CType(DataGrid1.BindingContext(arr), CurrencyManager)	DataGrid1.DataSource = arr					
    Observação Visual Studio 2005, você pode usar o tipo genérico para implementar esses códigos. Para obter mais informações, visite o seguinte site da MSDN (Microsoft Developer):
  13. Cole o seguinte código após o procedimento Form_Load :
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        cManager.Position += 1    End Sub    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        cManager.Position -= 1    End Sub    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click        cManager.Position = 0    End Sub    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click        cManager.Position = arr.Length - 1    End Sub					
  14. Criar e executar o projeto.
  15. Clique nos botões de comando para mover entre as linhas do controle DataGrid . Observe que você pode editar os valores dos objetos se desejado.
back to the top

Use uma estrutura em vez de uma classe

As regras para uma estrutura de ligação são o mesmo que as regras para vincular um objeto. Acessadores de propriedade (ou seja, membro) são necessários. Uma estrutura que é criada para essa finalidade é semelhante a uma classe.

Para vincular a uma matriz de estruturas, execute estas etapas:
  1. Alterar a definição de módulo de classe Class1.vb no exemplo de
    Public Class guitar'...End Class					
    à seguinte:
    Public Structure guitar'...End Structure					
  2. Criar e executar o programa de exemplo novamente e verifique se ele funciona com uma matriz de estruturas.
back to the top
Referências
Para obter mais informações, consulte o tópico "Consumidores de dados no Windows Forms" no Visual Studio .NET ou Visual Studio 2005 ajuda online.

back to the top

Propriedades

ID do Artigo: 315784 - Última Revisão: 05/11/2007 07:08:50 - Revisão: 3.5

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315784 KbMtpt
Comentários