Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

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.

316302
Per la una versione di Microsoft Visual C# .NET di questo articolo, vedere 316303.
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 CurrencyManagercManager = 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 PropertyEnd 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 CurrencyManagerPrivate 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.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 316302 - Ultima revisione: 12/06/2006 23:26:02 - Revisione: 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 KbMtit
Feedback