Comment faire pour lier un contrôle DataGrid à une liste d'objets ou des structures de tableaux à l'aide de Visual Basic 2005 ou Visual Basic .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 316302 - Voir les produits auxquels s'applique cet article
Pour une version de Visual C# .NET de cet article, voir 316303.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape explique comment lier une liste de tableaux d'objets à un contrôle DataGrid . L'exemple montre comment se compose d'un formulaire Windows avec un contrôle de grille de données Microsoft pour afficher les valeurs de propriétés objet et quatre boutons de commande pour rechercher les lignes du contrôle DataGrid .

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs sont requis :
  • Microsoft Visual Basic 2005 ou Microsoft Visual Basic .NET
Cet article suppose que vous êtes familiarisé avec les sujets suivants :
  • Concepts de programmation Visual Basic

Créer la classe

Une classe qui doit être lié à un contrôle doit utiliser accesseurs de propriété. Toute propriété qui doit être liée doit avoir méthodes jeu de propriétés et Property Get . La classe exemple qui est utilisée dans cet article comporte trois membres (le seul est affiché ici.) Un constructeur paramétré a également été fourni, mais n'est pas une exigence.
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
				

Ajouter des instances de classe à une liste de tableaux

Pour créer des instances et les ajouter à la liste de tableaux , procédez comme suit :
  1. Déclarer une liste de tableaux .
  2. Créer des instances de la classe et réintégration les instances à la liste de tableaux .
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))
				

Lier la liste de tableaux à l'objet DataGrid

Une fois la liste de tableaux a été rempli, définir la propriété DataSource du contrôle DataGrid à la liste de tableaux . Les colonnes dans le contrôle DataGrid sont remplis selon les propriétés pour lequel accesseurs de propriété dans étendue existent.
DataGrid1.DataSource = al
				

Fournir un moyen pour parcourir la liste de tableaux

Vous pouvez utiliser CurrencyManager pour parcourir la liste de tableaux . Pour ce faire, associer la BindingContext du contrôle (dans ce cas, la liste de tableaux ) CurrencyManager .
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
la classe CurrencyManager possède une propriété position que vous pouvez manipuler pour effectuer une itération sur les membres de la liste de tableaux . En ajoutant ou soustrayant de, la valeur actuelle de position , vous pouvez parcourir les lignes du contrôle 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
				

Exemple pas à pas

  1. Dans Visual Basic2005 ou dans Visual Basic .NET, créez un nouveau projet d'application Windows. Form1 est créé par défaut.
  2. Dans le menu projet , cliquez sur Ajouter une classe pour ajouter une classe au projet.
  3. Remplacez le code de Class1.vb par suivantes :
    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. Fermez la fenêtre de code Class1.vb et puis basculez vers le concepteur de formulaire.
  5. Ajoutez un contrôle DataGrid à Form1. Dimensionner le contrôle DataGrid pour prendre en charge quatre colonnes et trois lignes.
  6. Ajoutez quatre contrôles de bouton à Form1 et de puis organiser les boutons horizontalement.
  7. Modifiez la propriété de Bouton1 sur suivant .
  8. Modifiez la propriété de Bouton2 au précédent .
  9. Modifier la propriété texte de Bouton3 à premier .
  10. Modifiez la propriété de Button4 à dernier .
  11. Ajoutez le code suivant à la classe Form1 :
    Private cManager As CurrencyManager
    Private al as New ArrayList()
    					
  12. Collez le code suivant dans l'événement 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. Collez le code suivant après la procédure 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. Générez et exécutez le projet.
  15. Cliquez sur les boutons de commande pour se déplacer parmi les lignes du contrôle DataGrid . Notez que vous pouvez modifier les valeurs des objets si vous le souhaitez.

Utiliser une structure plutôt qu'une classe

Les règles de pour lier une structure sont les mêmes que les règles de liaison d'un objet. Accesseurs de propriété (c'est-à-dire, membre) sont nécessaires. Une structure qui est créée dans ce but ressemble à une classe.

Pour lier à une liste de tableaux , des structures, procédez comme suit :
  1. Modifier la définition du Class1.vb module de classe dans l'exemple de
    Public Class guitar
    '...
    End Class
    					
    à la suivante :
    Public Structure guitar
    '...
    End Structure
    					
  2. Créer, réexécutez le programme d'exemple et vérifiez qu'il fonctionne avec une liste de tableaux de structures.

Références

Pour plus d'informations, voir la rubrique « consommateurs de données sur Windows Forms » dans l'aide de Visual Studio .NET en ligne.

Propriétés

Numéro d'article: 316302 - Dernière mise à jour: mercredi 6 décembre 2006 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 316302
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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