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

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
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 316303.
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 CurrencyManagercManager = 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 PropertyEnd 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 CurrencyManagerPrivate 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.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 316302 - Última Revisão: 12/06/2006 23:26:02 - Revisão: 3.3

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

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtpt
Comentários