Créer un contrôle utilisateur Windows Forms .NET Framework qui prend en charge la liaison de données de recherche
Remarque
Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Ces technologies sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.
Pour afficher des données dans Windows Forms, vous pouvez choisir des contrôles existants dans la Boîte à outils ou créer des contrôles personnalisés si votre application requiert des fonctionnalités qui ne sont pas disponibles dans les contrôles standard. Cette procédure pas à pas vous indique comment créer un contrôle qui implémente l'objet LookupBindingPropertiesAttribute. Les contrôles qui implémentent LookupBindingPropertiesAttribute peuvent contenir trois propriétés pouvant être liées aux données. Ce type de contrôles est similaire à ComboBox.
Pour plus d’informations sur la création de contrôles, consultez Développement de contrôles Windows Forms au moment du design.
Quand vous créez des contrôles utilisables dans des scénarios de liaison de données, vous devez implémenter l’un des attributs Databinding suivants :
Utilisation de l'attribut Databinding |
---|
Implémentez DefaultBindingPropertyAttribute sur des contrôles simples, comme TextBox, qui affichent une seule colonne (ou propriété) de données. Pour plus d’informations, consultez Créer un contrôle utilisateur Windows Forms prenant en charge la liaison de données simples. |
Implémentez ComplexBindingPropertiesAttribute sur des contrôles, comme DataGridView, qui affichent des listes (ou tables) de données. Pour plus d’informations, consultez Créer un contrôle utilisateur Windows Forms qui prend en charge la liaison de données complexe. |
Implémentez LookupBindingPropertiesAttribute sur des contrôles, comme ComboBox, qui affichent des listes (ou tables) de données, mais doivent également présenter une seule colonne ou propriété. (Ce processus est décrit dans cette page de procédure pas à pas.) |
Cette procédure pas à pas crée un contrôle de recherche qui effectue une liaison vers les données de deux tables. Cet exemple utilise les tables Customers
et Orders
de l'exemple de base de données Northwind. Le contrôle de recherche est lié au champ CustomerID
de la table Orders
. Il utilise cette valeur pour rechercher le CompanyName
dans la table Customers
.
Pendant ce guide pas à pas, vous allez apprendre à :
Créez une nouvelle Application Windows Forms (.NET Framework).
Ajouter un nouveau Contrôle utilisateur à votre projet.
Concevoir visuellement le contrôle utilisateur.
Implémenter l'attribut
LookupBindingProperty
.Créez un jeu de données avec l’Assistant Configuration de la source de données.
Définir la colonne CustomerID de la table Orders dans la fenêtre Sources de données pour qu’elle utilise le nouveau contrôle.
Créer un formulaire pour afficher des données dans le nouveau contrôle.
Prérequis
Pour effectuer ce tutoriel, vous devez installer les charges de travail Développement de bureau .NET et Stockage et traitement des données dans Visual Studio. Pour les installer, ouvrez Visual Studio Installer et choisissez Modifier (ou Plus>Modifier) en regard de la version de Visual Studio que vous souhaitez modifier. Consultez Modifier Visual Studio.
Cette procédure pas à pas utilise SQL Server Express LocalDB et l’exemple de base de données Northwind.
Si SQL Server Express LocalDB n’est pas installé, installez-le à partir de la page de téléchargement SQL Server Express, ou via le programme d’installation Visual Studio Installer. Dans Visual Studio Installer, vous pouvez installer la base de données locale SQL Server Express dans le cadre de la charge de travail Traitement et stockage de données, ou l’installer comme un composant seul.
Installez l’exemple de base de données Northwind en procédant comme suit :
Dans Visual Studio, ouvrez la fenêtre de l’Explorateur d’objets SQL Server. (L’Explorateur d’objets SQL Server est installé dans le cadre de la charge de travail stockage de données et du traitement dans Visual Studio Installer.) Développez le nœud SQL Server. Cliquez avec le bouton droit sur votre instance LocalDB et sélectionnez Nouvelle requête.
Une fenêtre d’éditeur de requête s’ouvre.
Copiez le script Northwind Transact-SQL dans votre Presse-papiers. Ce script T-SQL crée la base de données Northwind à partir de zéro et la remplit avec des données.
Collez le script T-SQL dans l’éditeur de requête, puis cliquez sur le bouton Exécuter.
Peu de temps après, la requête se termine et la base de données Northwind est créée.
Créer un projet d’application Windows Forms
La première étape consiste à créer un projet d’Application Windows Forms (.NET Framework).
Dans Visual Studio, dans le menu Fichier, sélectionnez Nouveau>Projet.
Développez Visual C# ou Visual Basic dans le volet gauche, puis sélectionnez Windows Desktop.
Dans le volet central, sélectionnez le type de projet d’application Windows Forms.
Nommez le projet LookupControlWalkthrough, puis choisissez OK.
Le projet LookupControlWalkthrough est créé et ajouté à l’Explorateur de solutions.
Ajouter un contrôle utilisateur au projet
Cette procédure pas à pas crée un contrôle de recherche à partir d’un Contrôle utilisateur : ajoutez donc un élément Contrôle utilisateur au projet LookupControlWalkthrough.
Dans le menu Projet, sélectionnez Ajouter un contrôle utilisateur.
Tapez
LookupBox
dans la zone Nom, puis sélectionnez Ajouter.Le contrôle LookupBox est ajouté à l’Explorateur de solutions et s’ouvre dans le concepteur.
Concevoir le contrôle LookupBox
Pour concevoir le contrôle LookupBox, faites glisser un ComboBox de la boîte à outils vers l’aire de conception du contrôle utilisateur.
Ajouter l’attribut de liaison de données requis
Pour des contrôles de recherche prenant en charge la liaison de données, vous pouvez implémenter l’attributLookupBindingPropertiesAttribute.
Faites passer le contrôle LookupBox en mode Code. (Dans le menu Affichage, choisissez Code.)
Remplacez le code de
LookupBox
par le code suivant :using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
Dans le menu Générer , cliquez sur Générer la solution.
Création d’une source de données à partir de votre base de données
Cette étape crée une source de données à l’aide de l’Assistant Configuration de source de données basée sur les tables Customers
et Orders
de l’exemple de base de données Northwind.
Pour ouvrir la fenêtre Sources de données, dans le menu Données, cliquez sur Afficher les sources de données.
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.
Sélectionnez Base de données dans la page Choisir un type de source de données, puis sélectionnez Suivant.
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.
Sélectionnez Nouvelle connexion pour afficher la boîte de dialogue Ajouter/Modifier la connexion.
Si votre base de données nécessite un mot de passe, sélectionnez l’option pour ajouter des données sensibles, puis sélectionnez Suivant.
Dans la page Enregistrer la chaîne de connexion dans le fichier de configuration de l’application, cliquez sur Suivant.
Dans la page Choisir vos objets de base de données, développez le nœud Tables.
Sélectionnez les tables
Customers
etOrders
, puis sélectionnez Terminer.NorthwindDataSet est ajouté à votre projet, et les tables
Customers
etOrders
apparaissent dans la fenêtre Sources de données.
Définir la colonne CustomerID de la table Orders pour utiliser le contrôle LookupBox
Dans la fenêtre Sources de données, vous pouvez définir le contrôle à créer avant de faire glisser des éléments vers votre formulaire.
Ouvrez Form1 dans le concepteur.
Développez le nœud Customers dans la fenêtre Sources de données.
Développez le nœud Orders (inclus dans le nœud Customers sous la colonne Fax).
Cliquez sur la flèche déroulante du nœud Orders et choisissez Détails dans la liste de contrôles.
Cliquez sur la flèche déroulante de la colonne CustomerID (dans le nœud Orders), puis choisissez Personnaliser.
Sélectionnez LookupBox dans la liste des Contrôles associés de la boîte de dialogue Options de personnalisation de l’interface utilisateur des données.
Cliquez sur OK.
Cliquez sur la flèche de déroulement de la colonne CustomerID et choisissez LookupBox.
Ajouter des contrôles au formulaire
Pour créer des contrôles liés aux données, vous pouvez faire glisser des éléments depuis la fenêtre Sources de données vers Form1.
Pour créer des contrôles liés aux données sur Windows Form, faites glisser le nœud Commandes de la fenêtre Sources de données vers le Windows Form et vérifiez que le contrôle LookupBox est utilisé pour afficher les données dans la colonne CustomerID
.
Lier le contrôle pour rechercher CompanyName à partir de la table Clients
Pour configurer les liaisons de recherche, sélectionnez le nœud Clients principal dans la fenêtre Sources de données et faites-le glisser vers la zone de liste déroulante de CustomerIDLookupBox dans Form1.
Ceci configure la liaison des données pour afficher le CompanyName
de la table Customers
tout en conservant la valeur de CustomerID
de la table Orders
.
Exécution de l'application
Appuyez sur F5 pour exécuter l'application.
Parcourez quelques enregistrements et vérifiez que le
CompanyName
apparaît dans le contrôleLookupBox
.