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

Traduções deste artigo Traduções deste artigo
ID do artigo: 316302 - Exibir os produtos aos quais esse artigo se aplica.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 316303.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como vincular uma ArrayList de objetos a um controle DataGrid . O exemplo consiste em um Microsoft Windows Form com um controle DataGrid para exibir valores de propriedade do objeto e quatro botões de comando para procurar as linhas do controle DataGrid .

Requisitos

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

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
				

Adicionar classe instâncias a um ArrayList

Para criar instâncias e adicioná-los a ArrayList , execute essas etapas:
  1. Declare uma ArrayList .
  2. Criar instâncias da classe e adicionar as instâncias para ArrayList .
Private al as New Arraylist()

al.Add(New guitar("Gibson", "Les Paul", 1958))
al.Add(New guitar("Fender", "Jazz Bass", 1964))
al.Add(New guitar("Guild", "Bluesbird", 1971))
				

Vincular o ArrayList a DataGrid

Depois que o ArrayList foi preenchido, defina a propriedade DataSource do controle DataGrid para ArrayList . As colunas no controle DataGrid são preenchidas com base nas propriedades para o qual existem acessadores de propriedade no escopo.
DataGrid1.DataSource = al
				

Fornecer um meio para procurar o ArrayList

Você pode usar CurrencyManager para procurar ArrayList . Para fazer isso, associe CurrencyManager BindingContext do controle (no caso, o ArrayList ).
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
a classe CurrencyManager tem uma propriedade posição que você pode manipular para iterar sobre os membros de ArrayList . 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 = al.Count - 1
				

Exemplo passo a passo

  1. No Visual Basic2005 ou no Visual Basic. NET, crie um novo projeto Windows Application. O Form1 é criado por padrão.
  2. No menu Project , clique em 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 Property
    End 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 CurrencyManager
    Private al as New ArrayList()
    					
  12. Cole o seguinte código no evento Form1_Load :
    al.Add(New guitar("Gibson", "Les Paul", 1958))
    al.Add(New guitar("Fender", "Jazz Bass", 1964))
    al.Add(New guitar("Guild", "Bluesbird", 1971))
    				
    cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
    	
    DataGrid1.DataSource = al
    					
  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 = al.Count - 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.

Usar 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 ArrayList 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 novamente o programa de exemplo e verifique se ele funciona com uma ArrayList de estruturas.

Referências

Para obter mais informações, consulte o tópico "Consumidores de dados no Windows Forms" na Ajuda do Visual Studio .NET online.

Propriedades

ID do artigo: 316302 - Última revisão: quarta-feira, 6 de dezembro de 2006 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtpt
Tradução automática
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: 316302

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com