Você está offline; aguardando reconexão

Como vincular um controle DataGrid para uma ArrayList de objetos ou estruturas usando Visual Basic 2005 ou 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 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
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 316303.
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 CurrencyManagercManager = 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 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 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.

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