Passer des données entre des formulairesPass data between forms

Cette procédure pas à pas fournit des instructions détaillées pour passer des données d'un formulaire à l'autre.This walkthrough provides step-by-step instructions for passing data from one form to another. Les tables customers et orders de Northwind, un formulaire permet aux utilisateurs de sélectionner un client et un deuxième formulaire affiche les commandes du client sélectionné.Using the customers and orders tables from Northwind, one form allows users to select a customer, and a second form displays the selected customer's orders. Cette procédure pas à pas montre comment créer une méthode sur la deuxième forme qui reçoit des données à partir de la première forme.This walkthrough shows how to create a method on the second form that receives data from the first form.

Note

Cette procédure pas à pas n'indique qu'un seul moyen de passer les données entre formulaires.This walkthrough demonstrates only one way to pass data between forms. Il existe d’autres options pour passer des données à un formulaire, y compris la création d’un deuxième constructeur pour recevoir des données, ou création d’une propriété publique qui peut être définie avec des données à partir de la première forme.There are other options for passing data to a form, including creating a second constructor to receive data, or creating a public property that can be set with data from the first form.

Cette procédure pas à pas décrit notamment les tâches suivantes :Tasks illustrated in this walkthrough include:

  • Création d’un nouveau Windows Forms Application projet.Creating a new Windows Forms Application project.

  • Création et configuration d’un dataset avec le Assistant de Configuration de Source de données.Creating and configuring a dataset with the Data Source Configuration Wizard.

  • Sélection du contrôle à créer sur le formulaire lorsque vous faites glisser des éléments à partir de la des Sources de données fenêtre.Selecting the control to be created on the form when dragging items from the Data Sources window. Pour plus d’informations, consultez définir le contrôle à créer lors du déplacement de la fenêtre Sources de données.For more information, see Set the control to be created when dragging from the Data Sources window.

  • Création d’un contrôle lié aux données en faisant glisser des éléments à partir de la des Sources de données fenêtre vers un formulaire.Creating a data-bound control by dragging items from the Data Sources window onto a form.

  • Création d'un deuxième formulaire avec une grille pour afficher les données.Creating a second form with a grid to display data.

  • Création d'une requête TableAdapter pour extraire les commandes d'un client spécifique.Creating a TableAdapter query to fetch orders for a specific customer.

  • Transfert de données entre formulaires.Passing data between forms.

PrérequisPrerequisites

Cette procédure pas à pas utilise SQL Server Express LocalDB et la base de données Northwind.This walkthrough uses SQL Server Express LocalDB and the Northwind sample database.

  1. Si vous n’avez pas SQL Server Express LocalDB, installez-le à partir de la page de téléchargement de SQL Server Express, ou via le le programme d’installation de Visual Studio.If you don't have SQL Server Express LocalDB, install it either from the SQL Server Express download page, or through the Visual Studio Installer. Dans le programme d’installation Visual Studio, SQL Server Express LocalDB peuvent être installé dans le cadre de la stockage de données et de traitement charge de travail, ou comme un composant individuel.In the Visual Studio Installer, SQL Server Express LocalDB can be installed as part of the Data storage and processing workload, or as an individual component.

  2. Installer la base de données Northwind en suivant ces étapes :Install the Northwind sample database by following these steps:

    1. Dans Visual Studio, ouvrez le Explorateur d’objets SQL Server fenêtre.In Visual Studio, open the SQL Server Object Explorer window. (Explorateur d’objets SQL Server est installé dans le cadre de la stockage de données et de traitement charge de travail dans Visual Studio Installer.) Développez le SQL Server nœud.(SQL Server Object Explorer is installed as part of the Data storage and processing workload in the Visual Studio Installer.) Expand the SQL Server node. Avec le bouton droit sur votre instance de base de données locale et sélectionnez nouvelle requête.Right-click on your LocalDB instance and select New Query.

      Une fenêtre d’éditeur de requête s’ouvre.A query editor window opens.

    2. Copie le script Transact-SQL de Northwind dans votre Presse-papiers.Copy the Northwind Transact-SQL script to your clipboard. Ce script T-SQL crée la base de données Northwind à partir de zéro et la remplit avec des données.This T-SQL script creates the Northwind database from scratch and populates it with data.

    3. Collez le script T-SQL dans l’éditeur de requête, puis choisissez le Execute bouton.Paste the T-SQL script into the query editor, and then choose the Execute button.

      Après une courte période, la requête est terminée en cours d’exécution et la base de données Northwind est créé.After a short time, the query finishes running and the Northwind database is created.

Créer l’Application de formulaires WindowsCreate the Windows Forms Application

Pour créer un projet WindowsTo create the new Windows project

  1. Dans Visual Studio, sur le fichier menu, sélectionnez New > projet.In Visual Studio, on the File menu, select New > Project.

  2. Développez le Visual C# ou Visual Basic dans le volet gauche, puis sélectionnez Windows Desktop.Expand either Visual C# or Visual Basic in the left-hand pane, then select Windows Desktop.

  3. Dans le volet central, sélectionnez le Windows Forms application type de projet.In the middle pane, select the Windows Forms App project type.

  4. Nommez le projet PassingDataBetweenForms, puis choisissez OK.Name the project PassingDataBetweenForms, and then choose OK.

    Le PassingDataBetweenForms projet est créé et ajouté à l’Explorateur de solutions.The PassingDataBetweenForms project is created, and added to Solution Explorer.

Créer la source de donnéesCreate the data source

Pour créer la source de donnéesTo create the data source

  1. Dans le menu Données , cliquez sur Afficher les sources de données.On the Data menu, click Show Data Sources.

  2. Dans le des Sources de données fenêtre, sélectionnez ajouter une nouvelle Source de données pour démarrer le Configuration de Source de données Assistant.In the Data Sources window, select Add New Data Source to start the Data Source Configuration wizard.

  3. Sélectionnez Base de données dans la page Choisir un type de source de données , puis cliquez sur Suivant.Select Database on the Choose a Data Source Type page, and then click Next.

  4. Sur le choisir un modèle de base de données page, vérifiez que Dataset est spécifié, puis cliquez sur suivant.On the Choose a database model page, verify that Dataset is specified, and then click Next.

  5. Sur le choisir votre connexion de données page, effectuez l’une des opérations suivantes :On the Choose your Data Connection page, do one of the following:

    • Si une connexion de données à l’exemple de base de données Northwind est disponible dans la liste déroulante, sélectionnez-la.If a data connection to the Northwind sample database is available in the drop-down list, select it.

    • Sélectionnez nouvelle connexion pour lancer le Ajouter/modifier la connexion boîte de dialogue.Select New Connection to launch the Add/Modify Connection dialog box.

  6. Si votre base de données requiert un mot de passe et si l’option pour inclure des données sensibles est activée, sélectionnez l’option, puis cliquez sur suivant.If your database requires a password and if the option to include sensitive data is enabled, select the option and then click Next.

  7. Sur le enregistrer la chaîne de connexion dans le fichier de Configuration de l’Application , cliquez sur suivant.On the Save connection string to the Application Configuration file page, click Next.

  8. Sur le choisir vos objets de base de données page, développez le Tables nœud.On the Choose your Database Objects page, expand the Tables node.

  9. Sélectionnez le clients et commandes tables, puis cliquez sur Terminer.Select the Customers and Orders tables, and then click Finish.

    Le NorthwindDataSet est ajouté à votre projet et le clients et commandes tables apparaissent dans le des Sources de données fenêtre.The NorthwindDataSet is added to your project, and the Customers and Orders tables appear in the Data Sources window.

Créer le premier formulaire (Form1)Create the first form (Form1)

Vous pouvez créer une grille liée aux données (un DataGridView contrôle), en faisant glisser le clients nœud à partir de la des Sources de données fenêtre vers le formulaire.You can create a data-bound grid (a DataGridView control), by dragging the Customers node from the Data Sources window onto the form.

Pour créer une grille liée aux données dans le formulaireTo create a data-bound grid on the form

Créer le deuxième formulaire (Form2)Create the second form (Form2)

Pour créer un deuxième formulaire auquel passer les donnéesTo create a second form to pass the data to

  1. Dans le menu Projet, choisissez Ajouter un formulaire Windows.From the Project menu, choose Add Windows Form.

  2. Laissez le nom par défaut Form2, puis cliquez sur ajouter.Leave the default name of Form2, and click Add.

  3. Faites glisser le commandes nœud à partir de la des Sources de données fenêtre sur Form2.Drag the main Orders node from the Data Sources window onto Form2.

    Un DataGridView et une barre d’outils (BindingNavigator) pour parcourir les enregistrements apparaissent sur Form2.A DataGridView and a tool strip (BindingNavigator) for navigating records appear on Form2. Un NorthwindDataSet, CustomersTableAdapter, BindingSource, et BindingNavigator s’affichent dans la barre d’état du composant.A NorthwindDataSet, CustomersTableAdapter, BindingSource, and BindingNavigator appear in the component tray.

  4. Supprimer le OrdersBindingNavigator à partir de la barre d’état du composant.Delete the OrdersBindingNavigator from the component tray.

    Le OrdersBindingNavigator disparaît de Form2.The OrdersBindingNavigator disappears from Form2.

Ajouter une requête TableAdapter à Form2 pour charger les commandes du client sélectionné dans Form1Add a TableAdapter query to Form2 to load orders for the selected customer on Form1

Pour créer une requête TableAdapterTo create a TableAdapter query

  1. Double-cliquez sur le NorthwindDataSet.xsd fichier l’Explorateur de solutions.Double-click the NorthwindDataSet.xsd file in Solution Explorer.

  2. Cliquez sur le OrdersTableAdapter, puis sélectionnez ajouter une requête.Right-click the OrdersTableAdapter, and select Add Query.

  3. Laissez l’option par défaut utiliser des instructions SQL, puis cliquez sur suivant.Leave the default option of Use SQL statements, and then click Next.

  4. Laissez l’option par défaut LECT qui retourne des lignes, puis cliquez sur suivant.Leave the default option of SELECT which returns rows, and then click Next.

  5. Ajoutez une clause WHERE à la requête, pour retourner Orders selon le CustomerID.Add a WHERE clause to the query, to return Orders based on the CustomerID. La requête doit ressembler à la suivante :The query should be similar to the following:

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

    Note

    Vérifiez que la syntaxe du paramètre est correcte pour votre base de données.Verify the correct parameter syntax for your database. Par exemple, dans Microsoft Access, la clause WHERE est de type : WHERE CustomerID = ?.For example, in Microsoft Access, the WHERE clause would look like: WHERE CustomerID = ?.

  6. Cliquez sur Suivant.Click Next.

  7. Pour le remplir un nom DataTableMethod, type FillByCustomerID.For the Fill a DataTableMethod Name, type FillByCustomerID.

  8. Effacer la retourner un DataTable option, puis cliquez sur suivant.Clear the Return a DataTable option, and then click Next.

  9. Cliquez sur Terminer.Click Finish.

Créez une méthode sur Form2 pour passer des donnéesCreate a method on Form2 to pass data to

Pour créer une méthode pour y passer les donnéesTo create a method to pass data to

  1. Avec le bouton droit Form2, puis sélectionnez afficher le Code pour ouvrir Form2 dans le éditeur de Code.Right-click Form2, and select View Code to open Form2 in the Code Editor.

  2. Ajoutez le code suivant à Form2 après le Form2_Load méthode :Add the following code to Form2 after the Form2_Load method:

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

Créez une méthode sur Form1 pour passer des données et afficher Form2Create a method on Form1 to pass data and display Form2

Pour créer une méthode pour passer les données à Form2To create a method to pass data to Form2

  1. Dans Form1, avec le bouton droit de la grille de données client, puis cliquez sur propriétés.In Form1, right-click the Customer data grid, and then click Properties.

  2. Dans le propriétés fenêtre, cliquez sur événements.In the Properties window, click Events.

  3. Double-cliquez sur le CellDoubleClick événement.Double-click the CellDoubleClick event.

    L'éditeur de code apparaît.The code editor appears.

  4. Mettez à jour la définition de la méthode pour qu'elle corresponde à l'exemple suivant :Update the method definition to match the following sample:

    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'applicationRun the Application

Pour exécuter l’applicationTo run the application

  • Appuyez sur F5 pour exécuter l’application.Press F5 to run the application.

  • Double-cliquez sur un enregistrement de client dans Form1 pour ouvrir Form2 avec les commandes de ce client.Double-click a customer record in Form1 to open Form2 with that customer's orders.

Étapes suivantesNext steps

Selon les exigences de votre application, vous pouvez exécuter différentes étapes après le transfert de données entre formulaires.Depending on your application requirements, there are several steps you may want to perform after passing data between forms. Vous pouvez apporter à cette procédure pas à pas les améliorations suivantes :Some enhancements you could make to this walkthrough include:

Voir aussiSee also