Vorgehensweise zum Binden eines DataGrid-Steuerelements an einer ArrayList mit Objekten oder Strukturen mithilfe von Visual Basic 2005 oder Visual Basic .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 316302 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Eine Microsoft Visual c# .NET Version dieses Artikels finden Sie unter 316303.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser schrittweise aufgebaute Artikel beschreibt das Binden einer ArrayList mit Objekten an ein DataGrid -Steuerelement. Das Beispiel besteht für ein Microsoft Windows Form mit einem DataGrid -Steuerelement zum Anzeigen von Objekteigenschaftenwerte und vier Befehlsschaltflächen zum Durchsuchen der Zeilen eines DataGrid -Steuerelements.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Service Packs, die erforderlich sind:
  • Microsoft Visual Basic 2005 oder Microsoft Visual Basic .NET
In diesem Artikel wird vorausgesetzt, dass Sie über Erfahrungen auf den folgenden Gebieten verfügen:
  • Visual Basic-Programmierkonzepte

Entwerfen der Klasse

Eine Klasse, ein Steuerelement gebunden werden, muss Eigenschaftenaccessoren haben. Jede Eigenschaft, die gebunden werden muss Methoden Eigenschaftensatz und Property Get haben. Die Beispiel-Klasse, die in diesem Artikel verwendet wird, hat drei Member (nur eine wird hier dargestellt). Ein parametrisierter Konstruktor ist ebenfalls enthalten, ist jedoch nicht erforderlich.
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
				

Hinzufügen von Klasseninstanzen zu einer ArrayList

Erstellen von Instanzen und Sie die ArrayList hinzufügen, gehen Sie folgendermaßen vor:
  1. Deklarieren Sie eine ArrayList .
  2. Erstellen Sie Instanzen der Klasse, und fügen Sie die Instanzen zur ArrayList hinzu.
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))
				

Binden Sie die ArrayList an das DataGrid-Steuerelement

Nachdem die ArrayList aufgefüllt wurde, legen Sie die DataSource -Eigenschaft des DataGrid -Steuerelements zur ArrayList . Die Spalten im DataGrid -Steuerelement werden aufgefüllt Grundlage der Eigenschaften für die im Bereich Eigenschaftenaccessoren vorhanden sind.
DataGrid1.DataSource = al
				

Bereitstellen einer Möglichkeit zum Durchsuchen der ArrayList

Sie können CurrencyManager zum Durchsuchen der ArrayList verwenden. Verbinden Sie dazu CurrencyManager mit dem BindingContext des Steuerelements (in diesem Fall die ArrayList ).
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
die Klasse CurrencyManager hat eine Eigenschaft Position , die Sie zum Durchlaufen der Member der ArrayList ändern können. Durch Hinzufügen oder Subtraktion vom aktuellen Wert von Position , können Sie die Zeilen eines DataGrid -Steuerelements durchsuchen.
'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
				

Vorgehensweise: Beispiel

  1. Erstellen Sie in Visual Basic2005 oder in Visual Basic .NET ein neues Windows-Anwendungsprojekt. Form1 wird standardmäßig erstellt.
  2. Klicken Sie im Menü Projekt auf Klasse hinzufügen , um eine Klasse zum Projekt hinzufügen.
  3. Ersetzen Sie mit den folgenden den Code in Class1.vb:
    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. Schließen Sie das Class1.vb Code-Fenster, und wechseln Sie zum Formulardesigner.
  5. Fügen Sie ein DataGrid -Steuerelement zu Form1 hinzu. Die Größe des DataGrid -Steuerelements um vier Spalten und drei Zeilen aufzunehmen.
  6. Fügen Sie vier Button -Steuerelemente zu Form1 hinzu, und ordnen Sie die Schaltflächen horizontal an.
  7. Ändern Sie die Text -Eigenschaft von Button1 auf Weiter .
  8. Ändern Sie die Text -Eigenschaft von Button2 auf zurück .
  9. Ändern Sie die Text -Eigenschaft von Button3 auf Erster .
  10. Ändern Sie die Text -Eigenschaft von Button4 auf Letzte .
  11. Fügen Sie der Klasse Form1 den folgenden Code:
    Private cManager As CurrencyManager
    Private al as New ArrayList()
    					
  12. Fügen Sie den folgenden Code in die Form1_Load -Ereignis:
    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. Fügen Sie nach der Form_Load -Prozedur folgenden Code:
        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. Erstellen Sie das Projekt, und führen Sie es aus.
  15. Klicken Sie auf die Befehlsschaltflächen zum Wechseln zwischen den Zeilen eines DataGrid -Steuerelements. Bei Bedarf können Sie die Werte der Objekte bearbeiten.

Mit der Struktur statt einer Klasse

Die Regeln für die Bindung einer Struktur sind identisch mit den Regeln für ein Objekt binden. Eigenschaftenaccessoren (d. h. Member) sind erforderlich. Eine Struktur, die zu diesem Zweck erstellte ähnelt eine Klasse.

Gehen Sie folgendermaßen vor um an einem ArrayList mit Strukturen binden,
  1. Ändern der Definition des Klassenmoduls Class1.vb im Beispiel aus
    Public Class guitar
    '...
    End Class
    					
    , die der folgenden:
    Public Structure guitar
    '...
    End Structure
    					
  2. Erstellen und führen Sie das Beispielprogramm erneut aus, und stellen Sie sicher, dass Sie mit einer ArrayList mit Strukturen funktioniert.

Informationsquellen

Weitere Informationen finden Sie unter dem Thema "Consumers of Data on Windows Forms" in der Visual Studio .NET-Onlinehilfe.

Eigenschaften

Artikel-ID: 316302 - Geändert am: Mittwoch, 6. Dezember 2006 - Version: 3.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 316302
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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