Come associare un controllo DataGrid a un ArrayList di oggetti o strutture utilizzando Visual c ++ .NET o Visual c ++ 2005

Traduzione articoli Traduzione articoli
Identificativo articolo: 816164 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come associare una classe ArrayList di oggetti a un controllo DataGrid . L'esempio include di un Windows form con un controllo DataGrid per visualizzare valori di proprietÓ di oggetto e include quattro pulsanti di comando per scorrere le righe del controllo DataGrid .

Requisiti

In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Concetti di programmazione c ++ .NET o Visual c ++ 2005 Visual
Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack Ŕ necessario:
  • Microsoft Visual c ++ .NET o Microsoft Visual c ++ 2005

Struttura di classe

Per associare una classe a un controllo, la classe deve avere le funzioni di accesso alle proprietÓ. Qualsiasi proprietÓ che associano deve avere una funzione di richiamo e di una funzione setter . Implementare proprietÓ utilizzando la funzione di richiamo e la funzione di impostazione e si invia la notifica il compilatore che queste sono le funzioni di proprietÓ che utilizzano la parola chiave __property . La classe di esempio utilizzata in questo articolo dispone di tre membri:
__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; 
        }
};

Aggiunta di istanze della classe a un ArrayList

Per creare istanze e aggiungerli alla classe ArrayList , attenersi alla seguente procedura:
  1. Dichiarare una classe ArrayList nel modo seguente:
    private: ArrayList *arrayList;
  2. Nel gestore eventi FormLoad , creare istanze della classe e aggiungere quindi le istanze alla classe ArrayList nel modo seguente:
    //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));
    

Associare l'ArrayList al DataGrid

Dopo che la classe ArrayList Ŕ stata compilata, impostare la proprietÓ DataSource del controllo DataGrid alla classe ArrayList . Le colonne nel controllo DataGrid vengono popolate in base alle proprietÓ per cui esistono funzioni di accesso di proprietÓ nell'ambito.
// Bind the Array List to DataGrid.
      dataGrid1->DataSource = arrayList;

Spostare tramite l'ArrayList

╚ possibile utilizzare la classe CurrencyManager per spostarsi tra la classe ArrayList . A tale scopo, dichiarare una variabile per la classe CurrencyManager come indicato di seguito:
private: CurrencyManager *currencyManager;
associa la classe CurrencyManager con la funzione BindingContext del controllo (in questo caso, l' ArrayList ).
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
la classe CurrencyManager ha una proprietÓ di posizione che Ŕ possibile utilizzare per scorrere i membri della classe ArrayList . Aggiunta a o sottraendo il valore corrente della funzione di posizione , Ŕ possibile spostare tra le righe del controllo 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;
				

Procedura di esempio

  1. Avviare Microsoft Visual Studio .NET 2003 o Microsoft Visual Studio 2005.
  2. Scegliere Nuovo dal menu file , quindi progetto .
  3. Fare clic su Progetti di Visual c ++ in Tipi progetto , quindi fare clic su Applicazione Windows Form (. NET) in modelli .

    Nota In Visual Studio 2005, fare clic su Visual c ++ in Tipi progetto e quindi fare clic su Applicazione Windows Form in modelli .
  4. Nella casella di testo nome digitare Q816164 e quindi fare clic su OK .
  5. In Esplora risorse, passare alla visualizzazione classi. Per effettuare questa operazione, scegliere Visualizzazione classi dal menu Visualizza .
  6. Fare clic con il pulsante destro del mouse su Q816164 , scegliere Aggiungi , quindi Aggiungi classe .
  7. Nella finestra di dialogo Aggiungi classe , fare clic su Classe c ++ generica in modelli e scegliere Apri .

    Nota In Visual Studio 2005, fare clic su C ++ Cass in modelli , quindi Aggiungi .
  8. In guidata classe c ++ generica, digitare Chitarra nella casella di testo nome classe e quindi fare clic su Fine . La classe di Chitarra viene visualizzata come segue:
    #pragma once
    
    class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
    Nota In Visual Studio 2005, il codice Ŕ il seguente.
    #pragma once
    
    ref class Guitar
    {
    public:
    	Guitar(void);
    };
    
    Per rendere la classe un estensioni gestite per c ++ classe Chitarra , aggiungere la parola chiave __gc prima la classe di Chitarra , come illustrato di seguito:
    __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. Per aggiungere il compilatore opzione supporto common language runtime in Visual c ++ 2005, attenersi alla seguente procedura:
    1. Fare clic su progetto e quindi scegliere <ProjectName> proprietÓ .

      Nota <ProjectName> Ŕ un segnaposto per il nome del progetto.
    2. Espandere la ProprietÓ di configurazione e quindi fare clic su Generale .
    3. Fare clic per selezionare supporto Common Language Runtime, vecchia sintassi (/ CLR: oldSyntax) nell'impostazione progetto supporto Common Language Runtime nel riquadro di destra, fare clic su Applica e scegliere OK .
    Per ulteriori informazioni su common language runtime supporta (opzione del compilatore), visitare il seguente sito Web Microsoft:
    / clr (Common Language Runtime Compilation)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  10. Chiudere la finestra del codice Guitar.h e passare quindi alla progettazione Windows Form.
  11. Aggiungere un controllo DataGrid a Form1. Il controllo DataGrid per adattarsi alle quattro colonne e tre righe della dimensione.
  12. Aggiungere quattro controlli Button a Form1 e disporre quindi i pulsanti orizzontalmente.
  13. Modificare la proprietÓ di testo di Button1 in Avanti .
  14. Modificare la proprietÓ di testo di Button2 al precedente .
  15. Modificare la proprietÓ di testo di Button3 per primo .
  16. Modificare la proprietÓ di testo di Button4 per ultimo .
  17. Aprire il file Form1.h e aggiungere il codice riportato di seguito all'inizio:
    #include "Guitar.h"
  18. Aggiungere il codice seguente alla classe Form1 :
    private: System::Collections::ArrayList *arrayList;	
    private: System::Windows::Forms::CurrencyManager *currencyManager;	
    
  19. Passare alla progettazione Windows Form, fare clic con il pulsante destro del mouse su form1 e quindi scegliere ProprietÓ .
  20. Fare clic sull'icona eventi e quindi fare doppio clic sull'evento Load per aggiungere l'evento Form1_Load al codice.
  21. Incollare il codice riportato di seguito nell'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. Passare alla progettazione Windows Form.
  23. Fare doppio clic su Avanti e quindi aggiungere il codice riportato di seguito all'evento Button1_Click : //Move
    //Move to the next position.
    currencyManager->Position++;
    
  24. Fare doppio clic su Indietro e quindi aggiungere il codice riportato di seguito all'evento Button2_Click : //Move
    //Move to the previous position.
    currencyManager->Position--;
    
  25. Fare doppio clic sul primo e quindi aggiungere il codice riportato di seguito all'evento Button3_Click : //Move
    //Move to the first position.
    currencyManager->Position =0;
    
  26. Fare doppio clic su Cognome e quindi aggiungere il codice riportato di seguito all'evento Button4_Click : //Move
    //Move to the last position.
    currencyManager->Position = currencyManager->Count -1;
    
  27. Generare ed eseguire il progetto.
  28. Fare clic sui pulsanti per spostarsi tra le righe del controllo DataGrid comando. Notare che Ŕ in possibile di modificare i valori degli oggetti, se Ŕ necessario.

Riferimenti

Per ulteriori informazioni sui consumer di dati nei Windows Form, il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx

ProprietÓ

Identificativo articolo: 816164 - Ultima modifica: domenica 13 maggio 2007 - Revisione: 2.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
Chiavi:á
kbmt kbdatabinding kbcollections kbhowtomaster kbhowto KB816164 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 816164
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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