Como ligar um controlo DataGrid um ArrayList dos objectos ou estruturas utilizando o Visual C++ .NET ou Visual C++ 2005

Traduções de Artigos Traduções de Artigos
Artigo: 816164 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

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

Requisitos

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

Estrutura da classe

Para vincular uma classe a um controlo, a classe tem de ter os acessores de propriedade. Qualquer propriedade ligar tem de ter uma função getter e setter função. Implementar propriedades utilizando a função getter e a função setter e notifique o compilador que estas são funções de propriedade que utilizar a palavra-chave __property . A classe de exemplo que é utilizada neste artigo tem três membros:
__gc class Guitar
{
private:
        String *make;
        String *model;
        short year;
public:
    Guitar(void);
    ~Guitar(void);
        
        Guitar(String *strMake, String *strModel, short shYear)
        {
            make = strMake;
            model = strModel;
            year = shYear;
        }

        __property String* get_Make() 
        {
            return make; 
        }
        __property void set_Make(String* val)
        {
            make = (val); 
        }
        __property String* get_Model()
        { 
            return model; 
        }
        __property void set_Model(String* val)
        {
            model = (val); 
        }

        __property short get_Year()
        { 
            return year; 
        }
        __property void set_Year(short shValue)
        {
            year = shValue; 
        }
};

Adicionar instâncias de classe a um ArrayList

Para criar instâncias e adicioná-los para a classe ArrayList , siga estes passos:
  1. Declarar uma classe ArrayList da seguinte forma:
    private: ArrayList *arrayList;
  2. No processador de eventos FormLoad , criar instâncias da classe e adicione as instâncias da classe ArrayList da seguinte forma:
    //Create an ArrayList.
    arrayList = new ArrayList();
    
    //Populate the array list.
    arrayList->Add(new guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new guitar(S"Guild",S"Bluesbird",1958));
    

Ligar a ArrayList DataGrid

Depois da classe ArrayList estiver preenchida, defina a propriedade origem de dados do controlo DataGrid para a classe ArrayList . As colunas o controlo DataGrid são preenchidas baseadas nas propriedades para o qual existem os acessores de propriedade no âmbito.
// Bind the Array List to DataGrid.
      dataGrid1->DataSource = arrayList;

Mover através de ArrayList

Pode utilizar a classe CurrencyManager para percorrer a classe ArrayList . Para efectuar este procedimento, declarar uma variável para a classe CurrencyManager da seguinte forma:
private: CurrencyManager *currencyManager;
associar a classe CurrencyManager com a função BindingContext de controlo (neste caso, a ArrayList ).
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
a classe CurrencyManager tem uma propriedade de posição que pode manipular para iterar através de membros da classe ArrayList . Adicionar ou subtraindo do valor actual da função de posição , pode mover através das linhas do controlo DataGrid .
//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arrayList.Count - 1;
				

Exemplo passo a passo

  1. Inicie o Microsoft Visual Studio .NET 2003 ou Microsoft Visual Studio 2005.
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Clique em Projectos do Visual C++ em Project Types e clique em Aplicações de formulários do Windows (.NET) em modelos .

    Nota No Visual Studio 2005, clique em Visual C++ em Project Types e, em seguida, clique em Aplicações de formulários do Windows em modelos .
  4. Na caixa de texto nome , escreva Q816164 e, em seguida, clique em OK .
  5. No Solution Explorer, mude para vista de classe. Para tal, clique em Ver classe no menu Ver .
  6. Clique com o botão direito do rato Q816164 , aponte para Adicionar e, em seguida, clique em Adicionar classe .
  7. Na caixa de diálogo Adicionar classe , clique em Classes C++ genérico em modelos e, em seguida, clique em Abrir .

    Nota No Visual Studio 2005, clique C++ Cass em modelos e, em seguida, clique em Adicionar .
  8. No Assistente de classes C++ genérico, escreva Guitarra na caixa de texto nome de classe e, em seguida, clique em Concluir . A classe de Guitarra aparece da seguinte forma:
    #pragma once
    
    class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
    NOTA: no Visual Studio 2005, o código é.
    #pragma once
    
    ref class Guitar
    {
    public:
    	Guitar(void);
    };
    
    Para tornar Guitarra classe um geridos para as extensões classe C++ para, adicionar a palavra-chave __gc antes a classe de Guitarra , da seguinte forma:
    __gc class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
  9. Replace the existing code in the Guitar.h file with the following code:
    #pragma once
    
    using namespace System;
    __gc class Guitar
    {
    private:
            String *make;
            String *model;
            short year;
    public:
        Guitar(void);
        ~Guitar(void);
            
            Guitar(String *strMake, String *strModel, short shYear)
            {
                make = strMake;
                model = strModel;
                year = shYear;
            }
    
            __property String* get_Make() 
            {
                return make; 
            }
            __property void set_Make(String* val)
            {
                make = (val); 
            }
            __property String* get_Model()
            { 
                return model; 
            }
            __property void set_Model(String* val)
            {
                model = (val); 
            }
    
            __property short get_Year()
            { 
                return year; 
            }
            __property void set_Year(short shValue)
            {
                year = shValue; 
            }
    };
    
    
    Note You must add the common language runtime support compiler option (/clr:oldSyntax) in Visual C++ 2005 to successfully compile the previous code sample. Para adicionar a opção de compilador do suporte de tempo de execução idioma comum no Visual C++ 2005, siga estes passos:
    1. Clique em Project e, em seguida, clique em <ProjectName> propriedades .

      Nota <ProjectName> é um marcador de posição para o nome do projecto.
    2. Expanda Propriedades de configuração e, em seguida, clique em Geral .
    3. Clique para seleccionar Runtime do idioma comum suporte, sintaxe antigo (/ clr:oldSyntax) na definição de projecto Common Language Runtime suporte no painel da direita, clique em Aplicar e, em seguida, clique em OK .
    Para obter mais informações sobre o common language runtime suporte a opção do compilador, visite o seguinte Web site da Microsoft:
    / clr (Common Language Runtime compilação)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  10. Feche a janela de código Guitar.h e, em seguida, mude para o criador de formulários.
  11. Adicione o controlo DataGrid ao Form1. Tamanho o controlo DataGrid de acordo com quatro colunas e três linhas.
  12. Adicione quatro controlos botão ao Form1 e, em seguida, horizontalmente a dispor os botões.
  13. Altere a propriedade texto de Button1 para seguinte .
  14. Altere a propriedade texto de Button2 ao anterior .
  15. Altere a propriedade texto de Button3 a primeira .
  16. Altere a propriedade texto de Button4 para última .
  17. Abra o ficheiro de Form1.h e adicione o seguinte código no início:
    #include "Guitar.h"
  18. Adicione o seguinte código à classe Form1 :
    private: System::Collections::ArrayList *arrayList;	
    private: System::Windows::Forms::CurrencyManager *currencyManager;	
    
  19. Mude para o criador de formulários, clique com o botão direito do rato em form1 e, em seguida, clique em Propriedades .
  20. Clique no ícone de eventos e, em seguida, faça duplo clique o evento carregar para adicionar o evento Form1_Load o código.
  21. Cole o seguinte código no evento Form1_Load :
    //Create an arraylist.
    arrayList = new ArrayList();
    
    arrayList->Add(new Guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new Guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new Guitar(S"Guild",S"Bluesbird",1958));
    
                
     currencyManager = dynamic_cast <CurrencyManager*>
                     (dataGrid1->BindingContext->Item[arrayList]);
    // Bind the Array List to DataGrid.
    dataGrid1->DataSource = arrayList;
    
  22. Mude para o criador de formulários.
  23. Faça duplo clique em seguinte e adicione o seguinte código ao evento button1_Click :
    //Move to the next position.
    currencyManager->Position++;
    
  24. Faça duplo clique em anterior e adicione o seguinte código ao evento button2_Click :
    //Move to the previous position.
    currencyManager->Position--;
    
  25. Faça duplo clique primeiro e adicione o seguinte código ao evento button3_Click :
    //Move to the first position.
    currencyManager->Position =0;
    
  26. Faça duplo clique em último e adicione o seguinte código ao evento button4_Click :
    //Move to the last position.
    currencyManager->Position = currencyManager->Count -1;
    
  27. Criar e, em seguida, execute o projecto.
  28. Clique nos botões para percorrer as linhas do controlo DataGrid de comandos. Repare que pode editar os valores dos objectos, se for necessário.

Referências

Para obter mais informações sobre os consumidores de dados em formulários do Windows, visite o site Microsoft Developer Web seguinte:
http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx

Propriedades

Artigo: 816164 - Última revisão: 13 de maio de 2007 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
Palavras-chave: 
kbmt kbdatabinding kbcollections kbhowtomaster kbhowto KB816164 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: 816164

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