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

Traduzione articoli Traduzione articoli
Identificativo articolo: 316302 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Visual C# .NET di questo articolo, vedere 316303.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

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

Requisiti

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

Progettazione della classe

Deve disporre di una classe che dovrÓ essere associata a un controllo funzioni di accesso alle proprietÓ. Qualsiasi proprietÓ che deve essere associato deve disporre di metodi di ProprietÓ e Property Get . La classe di esempio utilizzata in questo articolo dispone di tre membri (solo uno viene descritto qui.) ╚ stato incluso anche un costruttore con parametri, sebbene non costituisca un 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
				

Aggiunta di istanze della classe a un ArrayList

Per creare istanze e aggiungerle ArrayList , attenersi alla seguente procedura:
  1. Dichiarare un ArrayList .
  2. Creare istanze della classe e quindi aggiungere le istanze per l' 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))
				

Associare l'ArrayList al DataGrid

Dopo l' ArrayList Ŕ stato compilato, impostare la proprietÓ DataSource del controllo DataGrid per l' ArrayList . Le colonne nel controllo DataGrid vengono popolate in base alle proprietÓ per cui esistono funzioni di accesso di proprietÓ nell'ambito.
DataGrid1.DataSource = al
				

Creazione di un metodo per scorrere l'ArrayList

╚ possibile utilizzare CurrencyManager per scorrere l' ArrayList . A tale scopo, associare CurrencyManager BindingContext del controllo (in questo caso, l' ArrayList ).
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
la classe CurrencyManager dispone di una proprietÓ di posizione che Ŕ possibile modificare per scorrere i membri di ArrayList . Aggiunta a o sottraendo il valore corrente della posizione , Ŕ possibile visualizzare le righe del controllo 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
				

Procedura di esempio

  1. Nella finestra di Visual Basic2005 oppure in Visual Basic .NET creare un nuovo progetto applicazione Windows. In base all'impostazione predefinita, viene creato il progetto Form1.
  2. Nel menu progetto , fare clic su Aggiungi classe per aggiungere una classe al progetto.
  3. Sostituire il codice in Class1.vb con le seguenti operazioni:
    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. Chiudere la finestra del codice Class1.vb e quindi passare alla finestra di progettazione.
  5. Aggiungere un controllo DataGrid a Form1. Le dimensioni del controllo DataGrid per supportare quattro colonne e tre righe.
  6. Aggiungere quattro controlli Button a Form1 e disporre quindi i pulsanti orizzontalmente.
  7. Modificare la proprietÓ di testo di Button1 in Avanti .
  8. Modificare la proprietÓ di testo di Button2 al precedente .
  9. Modificare la proprietÓ di testo di Button3 per primo .
  10. Modificare la proprietÓ di testo di Button4 per ultimo .
  11. Aggiungere il codice seguente alla classe Form1 :
    Private cManager As CurrencyManager
    Private al as New ArrayList()
    					
  12. Incollare il codice riportato di seguito nell'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. Incollare il codice seguente dopo la routine 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. Compilare ed eseguire il progetto.
  15. Fare clic sui pulsanti per spostarsi tra le righe del controllo DataGrid comando. Se necessario, Ŕ possibile modificare i valori degli oggetti.

Utilizzando una struttura anzichÚ una classe

Le regole per l'associazione di una struttura sono le stesse regole di associazione di un oggetto. ProprietÓ (ovvero, member) funzioni di accesso sono necessari. Una struttura che viene creata per questo scopo Ŕ simile a una classe.

Per associare un ArrayList di strutture, attenersi alla seguente procedura:
  1. Modificare la definizione del modulo di classe Class1.vb nell'esempio
    Public Class guitar
    '...
    End Class
    					
    al seguente:
    Public Structure guitar
    '...
    End Structure
    					
  2. Generare ed eseguire nuovamente il programma di esempio e verificare che funzioni con un ArrayList di strutture.

Riferimenti

Per ulteriori informazioni, vedere l'argomento "Consumer di dati in Windows Form" nella Guida in linea di Visual Studio .NET.

ProprietÓ

Identificativo articolo: 316302 - Ultima modifica: mercoledý 6 dicembre 2006 - Revisione: 3.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi:á
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 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: 316302
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