Partager via


Procédure pas à pas : passage de données entre Windows Forms

 

Date de publication : mars 2016

Cette procédure pas à pas fournit des instructions détaillées pour passer des données d'un formulaire à l'autre. L'utilisation des tables de clients et de commandes d'un formulaire de Northwind va permettre aux utilisateurs de sélectionner un client et d'afficher ses commandes dans un deuxième formulaire. Cette procédure pas à pas indique comment créer une méthode sur un formulaire recevant des données d'un premier formulaire.

Notes

Cette procédure pas à pas n'indique qu'un seul moyen de passer les données entre formulaires. Il existe d'autres options pour passer des données à un formulaire, parmi lesquelles : créer un deuxième constructeur pour recevoir les données ou créer une propriété publique pouvant être définie à l'aide des données du premier formulaire.

Cette procédure pas à pas décrit notamment les tâches suivantes :

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin des éléments suivants :

Création de l'application Windows

Pour créer un projet Windows

  1. Dans le menu Fichier, créez un nouveau projet.

  2. Attribuez le nom PassingDataBetweenForms au projet.

  3. Sélectionnez Application Windows Forms et cliquez sur OK. Pour plus d'informations, consultez Applications clientes.

    Le projet PassingDataBetweenForms est créé et ajouté à l'Explorateur de solutions.

Création de la source de données

Pour créer la source de données

  1. Dans le menu Données, cliquez sur Afficher les sources de données.

  2. Dans la fenêtre Sources de données, sélectionnez Ajouter une nouvelle source de données pour démarrer l'Assistant Configuration de source de données.

  3. Sélectionnez Base de données dans la page Choisir un type de source de données, puis cliquez sur Suivant.

  4. Dans la page Choisir un modèle de base de données, vérifiez que Dataset est spécifié, puis cliquez sur Suivant.

  5. Dans la page Choisir votre connexion de données, effectuez l'une des opérations suivantes :

    • Si une connexion de données à l'exemple de base de données Northwind est disponible dans la liste déroulante, sélectionnez-la.

      ou

    • Sélectionnez Nouvelle connexion pour afficher la boîte de dialogue Ajouter/Modifier la connexion.

  6. Si votre base de données requiert un mot de passe et si l'option permettant d'inclure les données sensibles est activée, sélectionnez l'option, puis cliquez sur Suivant.

  7. Cliquez sur Suivant dans la page Enregistrer la chaîne de connexion dans le fichier de configuration de l'application.

  8. Développez le nœud Tables dans la page Choisir vos objets de base de données.

  9. Sélectionnez les tables Customers et Orders, puis cliquez sur Terminer.

    NorthwindDataSet est ajouté à votre projet et les tables Customers et Orders apparaissent dans la fenêtre Sources de données.

Création du premier formulaire (Form1)

Vous pouvez créer une grille liée aux données (un contrôle DataGridView) en faisant glisser le nœud Customers depuis la fenêtre Sources de données vers le formulaire.

Pour créer une grille liée aux données dans le formulaire

Création du deuxième formulaire (Form2)

Pour créer un deuxième formulaire auquel passer les données

  1. Dans le menu Projet, choisissez Ajouter un formulaire Windows.

  2. Laissez le nom par défaut (Form2) et cliquez sur Ajouter.

  3. Faites glisser le nœud Orders principal depuis la fenêtre Sources de données vers Form2.

    Un DataGridView et une barre d'outils (BindingNavigator) pour parcourir les enregistrements apparaissent sur Form2. NorthwindDataSet, CustomersTableAdapter, BindingSource et BindingNavigator s'affichent dans la barre d'état des composants.

  4. Supprimez OrdersBindingNavigator de la barre d'état des composants.

    OrdersBindingNavigator disparaît de Form2.

Ajout d'une requête TableAdapter à Form2 pour charger les commandes du client sélectionné dans Form1

Pour créer une requête TableAdapter

  1. Double-cliquez sur le fichier NorthwindDataSet.xsd dans l'Explorateur de solutions.

  2. Cliquez avec le bouton droit sur OrdersTableAdapter et sélectionnez Ajouter une requête.

  3. Laissez l'option par défaut (Utiliser des instructions SQL), puis cliquez sur Suivant.

  4. Laissez l'option par défaut (SELECT qui retourne des lignes), puis cliquez sur Suivant.

  5. Ajoutez une clause WHERE à la requête pour retourner Orders en fonction de CustomerID. La requête doit ressembler à la suivante :

    SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry  
    FROM Orders   
    WHERE CustomerID = @CustomerID  
    

    Notes

    Vérifiez que la syntaxe du paramètre est correcte pour votre base de données. Par exemple, dans Microsoft Access, la clause WHERE est de type : WHERE CustomerID = ?.

  6. Cliquez sur Suivant.

  7. Pour le Nom de la méthode Remplir un DataTable, tapez FillByCustomerID.

  8. Désactivez l'option Retourner un DataTable, puis cliquez sur Suivant.

  9. Cliquez sur Terminer.

Création d'une méthode sur Form2 pour y passer les données

Pour créer une méthode pour y passer les données

  1. Cliquez avec le bouton droit sur Form2 et sélectionnez Afficher le code pour ouvrir Form2 dans l'Éditeur de texte.

  2. Ajoutez le code suivant à Form2 après la méthode Form2_Load :

            internal void LoadOrders(String CustomerID)
            {
                ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
            }
    
        Friend Sub LoadOrders(ByVal CustomerID As String)
            OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID)
        End Sub
    

Création d'une méthode sur Form1 pour passer les données et afficher Form2

Pour créer une méthode pour passer les données à Form2

  1. Dans Form1, cliquez avec le bouton droit sur la grille de données Customer, puis cliquez sur Propriétés.

  2. Dans la fenêtre Propriétés, cliquez sur Événements.

  3. Double-cliquez sur l'événement CellDoubleClick.

    L'éditeur de code apparaît.

  4. Mettez à jour la définition de la méthode pour qu'elle corresponde à l'exemple suivant :

            private void customersDataGridView_DoubleClick(object sender, EventArgs e)
            {
                System.Data.DataRowView SelectedRowView;
                NorthwindDataSet.CustomersRow SelectedRow;
    
                SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current;
                SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row;
    
                Form2 OrdersForm = new Form2();
                OrdersForm.LoadOrders(SelectedRow.CustomerID);
                OrdersForm.Show();
            }
    
        Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick
    
            Dim SelectedRowView As Data.DataRowView
            Dim SelectedRow As NorthwindDataSet.CustomersRow
    
            SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView)
            SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow)
    
            Dim OrdersForm As New Form2
            OrdersForm.LoadOrders(SelectedRow.CustomerID)
            OrdersForm.Show()
        End Sub
    

Exécution de l'application

Pour exécuter l'application

  • Appuyez sur F5 pour exécuter l'application.

  • Double-cliquez sur un enregistrement client dans Form1 pour ouvrir Form2 avec les commandes de ce client.

Étapes suivantes

Selon les spécifications de votre application, vous pouvez exécuter différentes étapes après le transfert de données entre formulaires. Vous pouvez apporter à cette procédure pas à pas les améliorations suivantes :

Voir aussi

Procédures pas à pas relatives aux données
Liaison de contrôles Windows Forms à des données dans Visual Studio
Vue d'ensemble des sources de données
Vue d'ensemble de TableAdapter
Connexion aux données dans Visual Studio
Préparation de votre application pour recevoir des données
Extraction de données dans votre application
Liaison de contrôles à des données dans Visual Studio
Modification des données dans votre application
Validation des données
Enregistrement des données