Como associar um controlo DataGrid a um ArrayList dos objectos ou estruturas utilizando o Visual Basic 2005 ou o Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 316302 - Ver produtos para os quais este artigo se aplica.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 316303.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como associar um ArrayList de objectos a um controlo DataGrid . O exemplo consiste de um formulário de Windows Microsoft com o controlo DataGrid para apresentar valores de propriedade do objecto e quatro botões de comando para procurar as linhas do controlo DataGrid .

Requisitos

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

Estruturar a classe

Uma classe que está a ser vinculado a um controlo tem de ter os acessores de propriedade. Qualquer propriedade que deve estar vinculada tem de métodos de Conjunto de propriedades e Obter propriedade . A classe de exemplo que é utilizada neste artigo tem três membros (só é mostrado aqui.) Um construtor com parâmetros também tiver sido 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 um ArrayList instâncias de classes

Para criar instâncias e adicioná-los a ArrayList , siga estes passos:
  1. Declare um ArrayList .
  2. Criar instâncias da classe e, em seguida, adicione as instâncias a 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))
				

Ligar a ArrayList DataGrid

Depois de ArrayList tiver sido preenchido, defina a propriedade origem de dados do controlo DataGrid para ArrayList . As colunas o controlo DataGrid são preenchidas baseadas nas propriedades para o qual existem os acessores de propriedade no âmbito.
DataGrid1.DataSource = al
				

Fornecem um meio para procurar a ArrayList

Pode utilizar o CurrencyManager para procurar a ArrayList . Para efectuar este procedimento, associa CurrencyManager BindingContext de controlo (neste caso, a ArrayList ).
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
a classe CurrencyManager tem uma propriedade de posição que pode manipular para iterar através de membros do ArrayList . Adicionar ou subtraindo do valor actual de posição , pode procurar as linhas do controlo 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 projecto de aplicação do Windows. É criado o Form1 por predefinição.
  2. No menu projecto , clique em Adicionar classe para adicionar uma classe ao projecto.
  3. Substitua o código de 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, mude para o criador de formulários.
  5. Adicione o controlo DataGrid ao Form1. Dimensione o controlo DataGrid para acomodar quatro colunas e três linhas.
  6. Adicione quatro controlos botão ao Form1 e, em seguida, horizontalmente a dispor os botões.
  7. Altere a propriedade texto de Button1 para seguinte .
  8. Altere a propriedade texto de Button2 ao anterior .
  9. Altere a propriedade texto de Button3 a primeira .
  10. Altere a propriedade texto de Button4 para ú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. Crie e execute o projecto.
  15. Clique nos botões para mover entre as linhas do controlo DataGrid de comandos. Tenha em atenção que pode editar os valores dos objectos se assim o desejar.

Utilizar uma estrutura em vez de uma classe

As regras para uma estrutura de enlace são o mesmo que as regras para um objecto de ligação. Os acessores de propriedade (ou seja, membro) são obrigatórios. Uma estrutura que criou para esta finalidade é semelhante a uma classe.

Para vincular a um ArrayList das estruturas, siga estes passos:
  1. Alterar a definição do 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 verificar se funciona com um ArrayList das estruturas.

Referências

Para mais informações, consulte o tópico "Consumidores de dados em formulários do Windows" a ajuda do Visual Studio .NET online.

Propriedades

Artigo: 316302 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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